reenable macos #195
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | ||
name: PyYAML CI | ||
on: | ||
push: | ||
# pull_request: | ||
# types: [opened, synchronize, reopened] | ||
workflow_dispatch: | ||
inputs: | ||
libyaml_repo: | ||
type: string | ||
default: https://github.com/yaml/libyaml | ||
libyaml_ref: | ||
type: string | ||
default: 0.2.5 | ||
skip_artifact_upload: | ||
type: boolean | ||
default: true | ||
skip_ci_redundant_jobs: | ||
type: boolean | ||
default: true | ||
skip_slow_jobs: | ||
type: boolean | ||
default: true | ||
env: | ||
LIBYAML_REPO: ${{ inputs.libyaml_repo || 'https://github.com/yaml/libyaml' }} # FIXME: can we ref the input.default value? | ||
LIBYAML_REF: ${{ inputs.libyaml_ref || '0.2.5' }} # FIXME: can we ref the input.default value? | ||
skip_ci_redundant_jobs: ${{ inputs.skip_ci_redundant_jobs || github.event_name == 'pull_request' || github.event_name == 'push' }} | ||
skip_slow_jobs: ${{ inputs.skip_slow_jobs || github.event_name == 'pull_request' || github.event_name == 'push' }} | ||
skip_artifact_upload: ${{ inputs.skip_artifact_upload || true }} # ${{ github.event_name == 'pull_request' }} | ||
jobs: | ||
python_sdist: | ||
name: pyyaml sdist | ||
runs-on: ubuntu-22.04 | ||
outputs: | ||
artifact_name: ${{ steps.build_sdist.outputs.artifact_name }} | ||
steps: | ||
- name: Checkout PyYAML | ||
uses: actions/checkout@v4 | ||
- name: Install a python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: 3.x | ||
- name: Build sdist | ||
id: build_sdist | ||
env: | ||
PYYAML_FORCE_CYTHON: 1 | ||
PYYAML_FORCE_LIBYAML: 0 | ||
run: | | ||
python -V | ||
python -m pip install build | ||
python -m build -s . | ||
echo "artifact_name=$(ls ./dist)" >> "$GITHUB_OUTPUT" | ||
- name: Upload sdist artifact | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ steps.build_sdist.outputs.artifact_name }} | ||
path: dist/${{ steps.build_sdist.outputs.artifact_name }} | ||
if-no-files-found: error | ||
# always upload the sdist artifact- all the wheel build jobs require it | ||
# make_linux_libyaml_matrix: | ||
# runs-on: ubuntu-22.04 | ||
# outputs: | ||
# matrix_json: ${{ steps.make_matrix.outputs.matrix_json }} | ||
# steps: | ||
# - uses: actions/checkout@v4 | ||
# - name: make a matrix | ||
# id: make_matrix | ||
# uses: ./.github/actions/dynamatrix | ||
# with: | ||
# matrix_yaml: | | ||
# include: | ||
# - { platform: manylinux1, arch: x86_64 } | ||
# - { platform: manylinux2014, arch: x86_64 } | ||
# - { platform: manylinux2014, arch: aarch64, omit: ${{ env.skip_slow_jobs }} } | ||
# - { platform: manylinux2014, arch: s390x, omit: ${{ env.skip_slow_jobs }} } | ||
# - { platform: musllinux_1_1, arch: x86_64 } | ||
# - { platform: musllinux_1_1, arch: aarch64, omit: ${{ env.skip_slow_jobs }} } | ||
# | ||
# linux_libyaml: | ||
# needs: [make_linux_libyaml_matrix] | ||
# name: libyaml ${{ matrix.platform }} ${{ matrix.arch }} | ||
# runs-on: ubuntu-22.04 | ||
# strategy: | ||
# fail-fast: false | ||
# matrix: ${{ fromJSON(needs.make_linux_libyaml_matrix.outputs.matrix_json) }} | ||
# env: | ||
# DOCKER_IMAGE: quay.io/pypa/${{ matrix.platform }}_${{ matrix.arch }} | ||
# steps: | ||
# - name: Check cached libyaml state | ||
# id: cached_libyaml | ||
# uses: actions/cache@v4 | ||
# with: | ||
# path: libyaml | ||
# key: libyaml_${{ matrix.platform }}_${{ matrix.arch }}_${{ env.LIBYAML_REF }} | ||
# | ||
# - name: configure docker foreign arch support | ||
# uses: docker/setup-qemu-action@v3 | ||
# if: matrix.arch != 'x86_64' && steps.cached_libyaml.outputs.cache-hit != 'true' | ||
# | ||
# - name: Checkout pyyaml | ||
# uses: actions/checkout@v4 | ||
# if: steps.cached_libyaml.outputs.cache-hit != 'true' | ||
# | ||
# - name: Build libyaml | ||
# run: > | ||
# docker run --rm | ||
# --volume "$(pwd):/io" | ||
# --env LIBYAML_REF | ||
# --env LIBYAML_REPO | ||
# --workdir /io | ||
# "$DOCKER_IMAGE" | ||
# /io/packaging/build/libyaml.sh | ||
# if: steps.cached_libyaml.outputs.cache-hit != 'true' | ||
# | ||
# - name: ensure output is world readable (or cache fill fails with Permission Denied) | ||
# run: > | ||
# sudo chmod -R a+r ./libyaml/ | ||
# if: steps.cached_libyaml.outputs.cache-hit != 'true' | ||
# | ||
# make_linux_pyyaml_matrix: | ||
# runs-on: ubuntu-22.04 | ||
# outputs: | ||
# matrix_json: ${{ steps.make_matrix.outputs.matrix_json }} | ||
# steps: | ||
# - uses: actions/checkout@v4 | ||
# - name: make a matrix | ||
# id: make_matrix | ||
# uses: ./.github/actions/dynamatrix | ||
# with: | ||
# matrix_yaml: | | ||
# include: | ||
# - { platform: manylinux1, arch: x86_64, spec: cp38, omit: ${{ env.skip_ci_redundant_jobs }} } | ||
# - { platform: manylinux1, arch: x86_64, spec: cp39, omit: ${{ env.skip_ci_redundant_jobs }} } | ||
# - { platform: manylinux2014, arch: x86_64, spec: cp310, omit: ${{ env.skip_ci_redundant_jobs }} } | ||
# - { platform: manylinux2014, arch: x86_64, spec: cp311, omit: ${{ env.skip_ci_redundant_jobs }} } | ||
# - { platform: manylinux2014, arch: x86_64, spec: cp312, omit: ${{ env.skip_ci_redundant_jobs }} } | ||
# - { platform: manylinux2014, arch: x86_64, spec: cp313, cibw_version: "https://github.com/nitzmahone/cibuildwheel/archive/refs/heads/py313_support.zip" } | ||
# - { platform: manylinux2014, arch: aarch64, spec: cp38, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: manylinux2014, arch: aarch64, spec: cp39, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: manylinux2014, arch: aarch64, spec: cp310, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: manylinux2014, arch: aarch64, spec: cp311, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: manylinux2014, arch: aarch64, spec: cp312, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: manylinux2014, arch: aarch64, spec: cp313, cibw_version: "https://github.com/nitzmahone/cibuildwheel/archive/refs/heads/py313_support.zip", omit: ${{ env.skip_slow_jobs }} } | ||
# - { platform: manylinux2014, arch: s390x, spec: cp38, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: manylinux2014, arch: s390x, spec: cp39, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: manylinux2014, arch: s390x, spec: cp310, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: manylinux2014, arch: s390x, spec: cp311, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: manylinux2014, arch: s390x, spec: cp312, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: manylinux2014, arch: s390x, spec: cp313, cibw_version: "https://github.com/nitzmahone/cibuildwheel/archive/refs/heads/py313_support.zip", omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: musllinux_1_1, arch: x86_64, spec: cp38, omit: ${{ env.skip_ci_redundant_jobs }} } | ||
# - { platform: musllinux_1_1, arch: x86_64, spec: cp39, omit: ${{ env.skip_ci_redundant_jobs }} } | ||
# - { platform: musllinux_1_1, arch: x86_64, spec: cp310, omit: ${{ env.skip_ci_redundant_jobs }} } | ||
# - { platform: musllinux_1_1, arch: x86_64, spec: cp311, omit: ${{ env.skip_ci_redundant_jobs }} } | ||
# - { platform: musllinux_1_1, arch: x86_64, spec: cp312, omit: ${{ env.skip_ci_redundant_jobs }} } | ||
# - { platform: musllinux_1_1, arch: x86_64, spec: cp313, cibw_version: "https://github.com/nitzmahone/cibuildwheel/archive/refs/heads/py313_support.zip", omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: musllinux_1_1, arch: aarch64, spec: cp39, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: musllinux_1_1, arch: aarch64, spec: cp310, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: musllinux_1_1, arch: aarch64, spec: cp311, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: musllinux_1_1, arch: aarch64, spec: cp312, omit: ${{ env.skip_ci_redundant_jobs || env.skip_slow_jobs }} } | ||
# - { platform: musllinux_1_1, arch: aarch64, spec: cp313 } # , omit: ${{ env.skip_slow_jobs }} } | ||
# | ||
# | ||
# linux_pyyaml: | ||
# needs: [python_sdist, linux_libyaml, make_linux_pyyaml_matrix] | ||
# name: pyyaml ${{matrix.spec}}-${{matrix.platform}}_${{matrix.arch}} | ||
# runs-on: ubuntu-22.04 | ||
# strategy: | ||
# fail-fast: false | ||
# matrix: ${{ fromJSON(needs.make_linux_pyyaml_matrix.outputs.matrix_json) }} | ||
# | ||
# steps: | ||
# - name: fetch sdist artifact | ||
# id: fetch_sdist | ||
# uses: actions/download-artifact@v4 | ||
# with: | ||
# name: ${{ needs.build_sdist.outputs.artifact_name }} | ||
# | ||
# - name: Fetch cached libyaml | ||
# id: cached_libyaml | ||
# uses: actions/cache/restore@v4 | ||
# with: | ||
# path: libyaml | ||
# key: libyaml_${{matrix.platform}}_${{matrix.arch}}_${{env.LIBYAML_REF}} | ||
# fail-on-cache-miss: true | ||
# | ||
# - name: configure docker foreign arch support | ||
# uses: docker/setup-qemu-action@v3 | ||
# if: matrix.arch != 'x86_64' | ||
# | ||
# - name: Build/Test/Package | ||
# env: | ||
# CIBW_ARCHS: all | ||
# # HACK: ick, maybe deconstruct the matrix a bit or query cibuildwheel for its default target *linux spec first? | ||
# CIBW_BUILD: ${{matrix.spec}}-${{ contains(matrix.platform, 'musllinux') && 'musllinux' || 'manylinux' }}_${{matrix.arch}} | ||
# CIBW_BUILD_VERBOSITY: 1 | ||
# # containerized Linux builds require explicit CIBW_ENVIRONMENT | ||
# CIBW_ENVIRONMENT: > | ||
# LD_LIBRARY_PATH=../libyaml/src/.libs | ||
# PYYAML_FORCE_CYTHON=1 | ||
# PYYAML_FORCE_LIBYAML=1 | ||
# CIBW_PRERELEASE_PYTHONS: 1 | ||
# CIBW_TEST_COMMAND: cd {project}; pytest | ||
# CIBW_TEST_REQUIRES: pytest | ||
# run: | | ||
# set -eux | ||
# | ||
# python3 -V | ||
# python3 -m pip install -U --user ${{ matrix.cibw_version || 'cibuildwheel' }} | ||
# | ||
# mkdir pyyaml | ||
# | ||
# tar zxf ${{ steps.fetch_sdist.outputs.download-path }}/pyyaml*.tar.gz/pyyaml*.tar.gz --strip-components=1 -C pyyaml | ||
# | ||
# cat << 'EOF' > build_config.toml | ||
# [tool.cibuildwheel.config-settings] | ||
# pyyaml_build_config='{"force":1, "library_dirs": ["../libyaml/src/.libs"], "include_dirs": ["../libyaml/include"]}' | ||
# EOF | ||
# | ||
# CIBW_BEFORE_BUILD="ls -l {project}" python3 -m cibuildwheel --config-file $(pwd)/build_config.toml --platform auto --output-dir ./dist ./pyyaml | ||
# | ||
# echo "artifact_name=$(ls ./dist/)" >> "$GITHUB_OUTPUT" | ||
# # FIXME: ensure exactly one artifact | ||
# | ||
# - name: Upload artifacts | ||
# uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: ${{ steps.build.outputs.artifact_name }} | ||
# path: dist/*.whl | ||
# if-no-files-found: error | ||
# if: ${{ ! env.skip_artifact_upload }} | ||
macos_libyaml: | ||
name: libyaml macos ${{matrix.arch}} | ||
strategy: | ||
matrix: | ||
include: | ||
- arch: x86_64 | ||
runs-on: macos-13 | ||
run_wrapper: arch -x86_64 bash --noprofile --norc -eo pipefail {0} | ||
- arch: arm64 | ||
deployment_target: '11.0' | ||
run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0} | ||
defaults: | ||
run: | ||
shell: ${{ matrix.run_wrapper || 'arch -x86_64 bash --noprofile --norc -eo pipefail {0}' }} | ||
runs-on: ${{ matrix.runs-on || 'macos-14' }} | ||
steps: | ||
- name: Check cached libyaml state | ||
id: cached_libyaml | ||
uses: actions/cache@v4 | ||
with: | ||
path: libyaml | ||
key: libyaml_macos_${{matrix.arch}}_${{env.LIBYAML_REF}} | ||
- name: Checkout PyYAML | ||
uses: actions/checkout@v4 | ||
if: steps.cached_libyaml.outputs.cache-hit != 'true' | ||
- name: Build libyaml | ||
env: | ||
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.deployment_target || '10.9' }} | ||
SDKROOT: ${{ matrix.sdkroot || 'macosx' }} | ||
run: | | ||
set -eux | ||
brew install automake coreutils m4 libtool | ||
bash ./packaging/build/libyaml.sh | ||
echo "finished artifact arch is $(lipo -archs libyaml/src/.libs/libyaml.a)" | ||
if: steps.cached_libyaml.outputs.cache-hit != 'true' | ||
make_macos_pyyaml_matrix: | ||
runs-on: ubuntu-22.04 | ||
outputs: | ||
matrix_json: ${{ steps.make_matrix.outputs.matrix_json }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: make a matrix | ||
id: make_matrix | ||
uses: ./.github/actions/dynamatrix | ||
with: | ||
matrix_yaml: | | ||
include: | ||
- spec: cp38-macosx_x86_64 | ||
cibw_version: cibuildwheel==2.11.1 | ||
runs_on: [macos-13] | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
- spec: cp39-macosx_x86_64 | ||
runs_on: [macos-13] | ||
omit: ${{ env.skip_ci_redundant_jobs }} | ||
- spec: cp310-macosx_x86_64 | ||
runs_on: [macos-13] | ||
omit: ${{ env.skip_ci_redundant_jobs }} | ||
- spec: cp311-macosx_x86_64 | ||
runs_on: [macos-13] | ||
omit: ${{ env.skip_ci_redundant_jobs }} | ||
- spec: cp312-macosx_x86_64 | ||
runs_on: [macos-13] | ||
omit: ${{ env.skip_ci_redundant_jobs }} | ||
- spec: cp313-macosx_x86_64 | ||
# cibw_version: https://github.com/nitzmahone/cibuildwheel/archive/refs/heads/py313_support.zip | ||
runs_on: [macos-13] | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
- spec: cp39-macosx_arm64 | ||
deployment_target: '11.0' | ||
arch: arm64 | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
- spec: cp310-macosx_arm64 | ||
deployment_target: '11.0' | ||
arch: arm64 | ||
omit: ${{ env.skip_ci_redundant_jobs }} | ||
- spec: cp311-macosx_arm64 | ||
deployment_target: '11.0' | ||
arch: arm64 | ||
omit: ${{ env.skip_ci_redundant_jobs }} | ||
- spec: cp312-macosx_arm64 | ||
deployment_target: '11.0' | ||
arch: arm64 | ||
omit: ${{ env.skip_ci_redundant_jobs }} | ||
- spec: cp313-macosx_arm64 | ||
deployment_target: '11.0' | ||
arch: arm64 | ||
macos_pyyaml: | ||
needs: [python_sdist, macos_libyaml, make_macos_pyyaml_matrix] | ||
name: pyyaml ${{ matrix.spec }} | ||
runs-on: ${{ matrix.runs_on || 'macos-14' }} | ||
defaults: | ||
run: | ||
shell: ${{ matrix.run_wrapper || 'bash --noprofile --norc -eo pipefail {0}' }} | ||
strategy: | ||
fail-fast: false | ||
matrix: ${{ fromJSON(needs.make_macos_pyyaml_matrix.outputs.matrix_json) }} | ||
steps: | ||
- name: fetch sdist artifact | ||
id: fetch_sdist | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: ${{ needs.build_sdist.outputs.artifact_name }} | ||
- name: Get cached libyaml state | ||
id: cached_libyaml | ||
uses: actions/cache/restore@v4 | ||
with: | ||
path: libyaml | ||
key: libyaml_macos_${{ matrix.arch || 'x86_64' }}_${{env.LIBYAML_REF}} | ||
fail-on-cache-miss: true | ||
- name: Install python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.11' # as of 2024-05, this has to be < 3.12 since the macos-13 runner image's | ||
# built-in virtualenv/pip are pinned to busted versions that fail on newer Pythons | ||
- name: Build/Test/Package | ||
env: | ||
C_INCLUDE_PATH: ../libyaml/include | ||
CIBW_BUILD: ${{matrix.spec}} | ||
CIBW_BUILD_VERBOSITY: 1 | ||
CIBW_PRERELEASE_PYTHONS: 1 | ||
CIBW_TEST_COMMAND: pytest {package} | ||
CIBW_TEST_REQUIRES: pytest | ||
LIBRARY_PATH: ../libyaml/src/.libs | ||
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.deployment_target || '10.9' }} | ||
PYYAML_FORCE_CYTHON: 1 | ||
PYYAML_FORCE_LIBYAML: 1 | ||
SDKROOT: ${{ matrix.sdkroot || 'macosx' }} | ||
run: | | ||
set -eux | ||
python3 -V | ||
python3 -m pip install -U --user ${{ matrix.cibw_version || 'cibuildwheel' }} | ||
mkdir pyyaml | ||
tar zxf pyyaml*.tar.gz/pyyaml*.tar.gz --strip-components=1 -C pyyaml | ||
cat << 'EOF' > build_config.toml | ||
[tool.cibuildwheel.config-settings] | ||
pyyaml_build_config='{"force":1, "library_dirs": ["../libyaml/src/.libs"], "include_dirs": ["../libyaml/include"]}' | ||
EOF | ||
python3 -m cibuildwheel --config-file $(pwd)/build_config.toml --platform auto --output-dir ./dist ./pyyaml | ||
echo "artifact_name=$(ls ./dist/)" >> "$GITHUB_OUTPUT" | ||
# FIXME: ensure exactly one artifact | ||
- name: Upload artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ steps.build.outputs.artifact_name }} | ||
path: dist/*.whl | ||
if-no-files-found: error | ||
if: ${{ ! env.skip_artifact_upload }} | ||
# | ||
# windows_libyaml: | ||
# name: libyaml windows ${{ matrix.arch }} | ||
# runs-on: ${{ matrix.platform || 'windows-2022' }} | ||
# strategy: | ||
# matrix: | ||
# include: | ||
# - arch: x64 | ||
# - arch: win32 | ||
# steps: | ||
# - name: Get cached libyaml state | ||
# id: cached_libyaml | ||
# uses: actions/cache@v4 | ||
# with: | ||
# path: libyaml | ||
# key: libyaml_${{ 'windows' }}_${{ matrix.arch }}_${{ env.LIBYAML_REF }} | ||
# | ||
# - name: Build libyaml | ||
# shell: bash | ||
# if: steps.cached_libyaml.outputs.cache-hit != 'true' | ||
# run: | | ||
# # git spews all over stderr unless we tell it not to | ||
# export GIT_REDIRECT_STDERR="2>&1" | ||
# | ||
# if [[ ! -d ./libyaml ]]; then | ||
# git clone -b ${{ env.LIBYAML_REF }} ${{ env.LIBYAML_REPO }} 2>&1 | ||
# fi | ||
# | ||
# pushd libyaml | ||
# git clean -fdx | ||
# popd | ||
# | ||
# mkdir libyaml/build | ||
# | ||
# pushd libyaml/build | ||
# cmake.exe -G "Visual Studio 17 2022" -A ${{ matrix.arch }} -DYAML_STATIC_LIB_NAME=yaml .. | ||
# cmake.exe --build . --config Release | ||
# popd | ||
# | ||
# make_windows_pyyaml_matrix: | ||
# runs-on: ubuntu-22.04 | ||
# outputs: | ||
# matrix_json: ${{ steps.make_matrix.outputs.matrix_json }} | ||
# steps: | ||
# - uses: actions/checkout@v4 | ||
# - name: make a matrix | ||
# id: make_matrix | ||
# uses: ./.github/actions/dynamatrix | ||
# with: | ||
# matrix_yaml: | | ||
# include: | ||
# - spec: cp38-win_amd64 | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
# | ||
# - spec: cp39-win_amd64 | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
# | ||
# - spec: cp310-win_amd64 | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
# | ||
# - spec: cp311-win_amd64 | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
# | ||
# - spec: cp312-win_amd64 | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
# | ||
# - spec: cp313-win_amd64 | ||
# | ||
# - spec: cp38-win32 | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
# | ||
# - spec: cp39-win32 | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
# | ||
# - spec: cp310-win32 | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
# | ||
# - spec: cp311-win32 | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
# | ||
# - spec: cp312-win32 | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
# | ||
# - spec: cp313-win32 | ||
# omit: ${{ env.skip_ci_redundant_jobs }} | ||
# | ||
# windows_pyyaml: | ||
# needs: [python_sdist, windows_libyaml, make_windows_pyyaml_matrix] | ||
# name: pyyaml ${{matrix.spec}} | ||
# runs-on: ${{ matrix.runs-on || 'windows-2022' }} | ||
# strategy: | ||
# fail-fast: false | ||
# matrix: ${{ fromJSON(needs.make_windows_pyyaml_matrix.outputs.matrix_json) }} | ||
# steps: | ||
# # autocrlf screws up tests under Windows | ||
# - name: Set git to use LF | ||
# run: | | ||
# git config --global core.autocrlf false | ||
# git config --global core.eol lf | ||
# | ||
# - name: fetch sdist artifact | ||
# id: fetch_sdist | ||
# uses: actions/download-artifact@v4 | ||
# with: | ||
# name: ${{ needs.build_sdist.outputs.artifact_name }} | ||
# | ||
# - name: Get cached libyaml state | ||
# id: cached_libyaml | ||
# uses: actions/cache/restore@v4 | ||
# with: | ||
# path: libyaml | ||
# key: libyaml_${{'windows'}}_${{ contains(matrix.spec, 'win_amd64') && 'x64' || 'win32' }}_${{env.LIBYAML_REF}} | ||
# fail-on-cache-miss: true | ||
# | ||
# - name: Install python | ||
# uses: actions/setup-python@v5 | ||
# with: | ||
# python-version: 3.x | ||
# | ||
# - name: Build/Test/Package | ||
# id: build | ||
# shell: bash | ||
# env: | ||
# CIBW_BUILD: ${{matrix.spec}} | ||
# CIBW_BUILD_VERBOSITY: 1 | ||
# CIBW_BEFORE_TEST: ls -l {package} | ||
# CIBW_TEST_COMMAND: pytest {package} | ||
# CIBW_TEST_REQUIRES: pytest | ||
# CIBW_PRERELEASE_PYTHONS: 1 | ||
# #CIBW_CONFIG_SETTINGS: | | ||
# # pyyaml_build_config='{"include_dirs": ["libyaml/include"], "library_dirs": ["libyaml/build/Release"], "define": [["YAML_DECLARE_STATIC", 1]], "force": 1}' | ||
# run: | | ||
# set -eux | ||
# python -V | ||
# python -m pip install -U --user ${{ matrix.cibw_version || 'cibuildwheel' }} | ||
# mkdir pyyaml | ||
# | ||
# tar zxf pyyaml*.tar.gz/pyyaml*.tar.gz --strip-components=1 -C pyyaml | ||
# | ||
# cat << 'EOF' > build_config.toml | ||
# [tool.cibuildwheel.config-settings] | ||
# pyyaml_build_config='{"force":1, "include_dirs": ["../libyaml/include"], "library_dirs": ["../libyaml/build/Release"], "define": [["YAML_DECLARE_STATIC", 1]], "force": 1}' | ||
# EOF | ||
# | ||
# python3 -m cibuildwheel --config-file $(pwd)/build_config.toml --platform auto --output-dir ./dist ./pyyaml | ||
# | ||
# echo "artifact_name=$(ls ./dist/)" >> "$GITHUB_OUTPUT" | ||
# # FIXME: ensure exactly one artifact | ||
# | ||
# - name: Upload artifacts | ||
# uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: ${{ steps.build.outputs.artifact_name }} | ||
# path: dist/*.whl | ||
# if-no-files-found: error | ||
# if: ${{ ! env.skip_artifact_upload }} | ||
merge_artifacts: | ||
needs: [python_sdist, macos_pyyaml] # FIXME: linux_pyyaml, windows_pyyaml | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- name: merge all artifacts | ||
uses: actions/upload-artifact/merge@v4 | ||
with: | ||
name: dist | ||
delete-merged: true | ||
if: ${{ ! env.skip_artifact_upload }} | ||
Check failure on line 574 in .github/workflows/ci.yaml GitHub Actions / PyYAML CIInvalid workflow file
|
||
# | ||
# check: | ||
# if: always() | ||
# needs: | ||
# - python_sdist | ||
# - linux_pyyaml | ||
# - macos_pyyaml | ||
# - windows_pyyaml | ||
# - merge_artifacts | ||
# runs-on: ubuntu-latest | ||
# steps: | ||
# - name: Verify all previous jobs succeeded (provides a single check to sample for gating purposes) | ||
# uses: re-actors/alls-green@release/v1 | ||
# with: | ||
# jobs: ${{ toJSON(needs) }} | ||
... |