---
# This is the CI workflow (not the artifact build/release workflow). The workflows
# are split because GHA doesn't support a dynamic/conditional matrix. This workflow
# has slow jobs and jobs that require private GHA runners (eg, M1 Mac) commented out.
# Ensure changes are synced with manual_artifact_build.yaml.
name: PyYAML CI

on:
  push:
  pull_request:
    types: [opened, synchronize, edited, reopened]
  workflow_dispatch:

env:
  LIBYAML_REPO: https://github.com/yaml/libyaml
  LIBYAML_REF: 0.2.5

jobs:
  python_sdist:
    name: pyyaml sdist
    runs-on: ubuntu-latest
    steps:
    - name: Checkout PyYAML
      uses: actions/checkout@v3

    - name: Install a python
      uses: actions/setup-python@v4
      with:
        python-version: 3.x

    - name: Build sdist
      env:
        PYYAML_FORCE_CYTHON: 1
        PYYAML_FORCE_LIBYAML: 0
      run: |
        python -V
        python -m pip install build

        python -m build .

        # Ensure exactly one artifact was produced.
        [[ $(shopt -s nullglob; ls dist/*.tar.gz | wc -w) == 1 ]] || {
          echo "Unexpected content in dist dir: '$(ls dist/*.tar.gz)'."
          exit 1
        }

    - name: Test sdist
      run: |
        # Install some libyaml headers.
        # TODO Should we smoke test the sdist against the libyaml we built?
        sudo apt update
        sudo apt install libyaml-dev -y

        # Ensure Cython is not present so we use only what's in the sdist.
        python -m pip uninstall Cython -y || true

        # Pass no extra args.
        # We should auto-install with libyaml since it's present.
        python -m pip install dist/*.tar.gz -v

        python packaging/build/smoketest.py

    - name: Upload sdist artifact
      uses: actions/upload-artifact@v3
      with:
        name: dist
        path: dist/*.tar.gz


  linux_libyaml:
    name: libyaml ${{matrix.cfg.arch}} ${{matrix.cfg.platform}}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        cfg:
        - { platform: manylinux1, arch: x86_64 }
        - { platform: manylinux2014, arch: x86_64 }
#        - { platform: manylinux2014, arch: aarch64 }
#        - { platform: manylinux2014, arch: s390x }
        - { platform: musllinux_1_1, arch: x86_64 }
    env:
      DOCKER_IMAGE: quay.io/pypa/${{matrix.cfg.platform}}_${{matrix.cfg.arch}}
    steps:
    - name: Check cached libyaml state
      id: cached_libyaml
      uses: actions/cache@v3
      with:
        path: libyaml
        key: libyaml_${{matrix.cfg.platform}}_${{matrix.cfg.arch}}_${{env.LIBYAML_REF}}

    - name: configure docker foreign arch support
      uses: docker/setup-qemu-action@v2
      if: matrix.cfg.arch != 'x86_64' && steps.cached_libyaml.outputs.cache-hit != 'true'

    - name: Checkout pyyaml
      uses: actions/checkout@v3
      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'


  linux_pyyaml:
    needs: linux_libyaml
    name: pyyaml ${{matrix.arch}} ${{matrix.platform}} ${{matrix.spec}}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        include:
        - { platform: manylinux1, arch: x86_64, spec: cp36 }
#        - { platform: manylinux1, arch: x86_64, spec: cp37 }
#        - { platform: manylinux1, arch: x86_64, spec: cp38 }
#        - { platform: manylinux1, arch: x86_64, spec: cp39 }
#        - { platform: manylinux2014, arch: x86_64, spec: cp310 }
#        - { platform: manylinux2014, arch: x86_64, spec: cp311 }
        - { platform: manylinux2014, arch: x86_64, spec: cp312 }
#        - { platform: manylinux2014, arch: aarch64, spec: cp36 }
#        - { platform: manylinux2014, arch: aarch64, spec: cp37 }
#        - { platform: manylinux2014, arch: aarch64, spec: cp38 }
#        - { platform: manylinux2014, arch: aarch64, spec: cp39 }
#        - { platform: manylinux2014, arch: aarch64, spec: cp310 }
#        - { platform: manylinux2014, arch: aarch64, spec: cp311 }
#        - { platform: manylinux2014, arch: aarch64, spec: cp312 }
#        - { platform: manylinux2014, arch: s390x, spec: cp36 }
#        - { platform: manylinux2014, arch: s390x, spec: cp37 }
#        - { platform: manylinux2014, arch: s390x, spec: cp38 }
#        - { platform: manylinux2014, arch: s390x, spec: cp39 }
#        - { platform: manylinux2014, arch: s390x, spec: cp310 }
#        - { platform: manylinux2014, arch: s390x, spec: cp311 }
#        - { platform: manylinux2014, arch: s390x, spec: cp312 }
#        - { platform: musllinux_1_1, arch: x86_64, spec: cp38 }
#        - { platform: musllinux_1_1, arch: x86_64, spec: cp39 }
#        - { platform: musllinux_1_1, arch: x86_64, spec: cp310 }
#        - { platform: musllinux_1_1, arch: x86_64, spec: cp311 }
        - { platform: musllinux_1_1, arch: x86_64, spec: cp312 }

    steps:
    - name: Checkout PyYAML
      uses: actions/checkout@v3

    - name: Fetch cached libyaml
      id: cached_libyaml
      uses: actions/cache/restore@v3
      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@v2
      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: >
          C_INCLUDE_PATH=libyaml/include
          LIBRARY_PATH=libyaml/src/.libs
          LD_LIBRARY_PATH=libyaml/src/.libs
          PYYAML_FORCE_CYTHON=1
          PYYAML_FORCE_LIBYAML=1
        CIBW_TEST_COMMAND: cd {project}; python tests/lib/test_all.py
      run: |
        set -eux
        python3 -V
        python3 -m pip install -U --user cibuildwheel
        python3 -m cibuildwheel --platform auto --output-dir dist .

    - name: Upload artifacts
      uses: actions/upload-artifact@v3
      with:
        name: dist
        path: dist/*.whl
        if-no-files-found: error

  macos_libyaml:
    name: libyaml macos ${{matrix.arch}}
    strategy:
      matrix:
        include:
        - arch: x86_64
#        - arch: arm64
#          runs_on: [self-hosted, macOS, arm64]
#          deployment_target: '11.0'
#          run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0}
#          sdkroot: macosx11.3
    defaults:
      run:
        shell: ${{ matrix.run_wrapper || 'bash --noprofile --norc -eo pipefail {0}' }}
    runs-on: ${{ matrix.runs_on || 'macos-11' }}
    steps:
    - name: Check cached libyaml state
      id: cached_libyaml
      uses: actions/cache@v3
      with:
        path: libyaml
        key: libyaml_macos_${{matrix.arch}}_${{env.LIBYAML_REF}}

    - name: Checkout PyYAML
      uses: actions/checkout@v3
      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
        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'


  macos_pyyaml:
    needs: macos_libyaml
    name: pyyaml ${{ matrix.spec }}
    runs-on: ${{ matrix.runs_on || 'macos-11' }}
    defaults:
      run:
        shell: ${{ matrix.run_wrapper || 'bash --noprofile --norc -eo pipefail {0}' }}
    strategy:
      matrix:
        include:
#        - spec: cp36-macosx_x86_64
#          cibw_version: cibuildwheel==2.11.1
#        - spec: cp37-macosx_x86_64
#          cibw_version: cibuildwheel==2.11.1
#        - spec: cp38-macosx_x86_64
#          cibw_version: cibuildwheel==2.11.1
#        - spec: cp39-macosx_x86_64
#        - spec: cp310-macosx_x86_64
#        - spec: cp311-macosx_x86_64
        - spec: cp312-macosx_x86_64

#        # build for arm64 under a hacked macOS 12 self-hosted x86_64-on-arm64 runner until arm64 is fully supported
#        - spec: cp39-macosx_arm64
#          deployment_target: '11.0'
#          runs_on: [self-hosted, macOS, arm64]
#          arch: arm64
#          run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0}
#          sdkroot: macosx11.3
#
#        - spec: cp310-macosx_arm64
#          deployment_target: '11.0'
#          runs_on: [self-hosted, macOS, arm64]
#          arch: arm64
#          run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0}
#          sdkroot: macosx11.3
#
#        - spec: cp311-macosx_arm64
#          deployment_target: '11.0'
#          runs_on: [self-hosted, macOS, arm64]
#          arch: arm64
#          run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0}
#          sdkroot: macosx11.3
#
#        - spec: cp312-macosx_arm64
#          deployment_target: '11.0'
#          runs_on: [self-hosted, macOS, arm64]
#          arch: arm64
#          run_wrapper: arch -arm64 bash --noprofile --norc -eo pipefail {0}
#          sdkroot: macosx11.3

    steps:
    - name: Checkout PyYAML
      uses: actions/checkout@v3

    - name: Get cached libyaml state
      id: cached_libyaml
      uses: actions/cache/restore@v3
      with:
        path: libyaml
        key: libyaml_macos_${{ matrix.arch || 'x86_64' }}_${{env.LIBYAML_REF}}
        fail-on-cache-miss: true

    - name: Build/Test/Package
      env:
        C_INCLUDE_PATH: libyaml/include
        CIBW_BUILD: ${{matrix.spec}}
        CIBW_BUILD_VERBOSITY: 1
        CIBW_TEST_COMMAND: cd {project}; python tests/lib/test_all.py
        LIBRARY_PATH: libyaml/src/.libs
        MACOSX_DEPLOYMENT_TARGET: ${{ matrix.deployment_target || '10.9' }}
        SDKROOT: ${{ matrix.sdkroot || 'macosx' }}
      run: |
        python3 -V
        python3 -m pip install -U --user ${{ matrix.cibw_version || 'cibuildwheel' }}
        python3 -m cibuildwheel --platform auto --output-dir dist .

    - name: Upload artifacts
      uses: actions/upload-artifact@v3
      with:
        name: dist
        path: dist/*.whl
        if-no-files-found: error

  windows_libyaml:
    name: libyaml ${{matrix.platform}} ${{matrix.arch}}
    runs-on: ${{matrix.platform}}
    strategy:
      matrix:
        include:
        - platform: windows-2019
          arch: x64
        - platform: windows-2019
          arch: win32
    steps:
    - name: Get cached libyaml state
      id: cached_libyaml
      uses: actions/cache@v3
      with:
        path: libyaml
        key: libyaml_${{matrix.platform}}_${{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 16 2019" -A ${{ matrix.arch }} -DYAML_STATIC_LIB_NAME=yaml ..
        cmake.exe --build . --config Release
        popd


  windows_pyyaml:
    needs: windows_libyaml
    name: pyyaml ${{ matrix.platform }} ${{matrix.python_arch}} ${{matrix.spec}}
    runs-on: ${{matrix.platform}}
    strategy:
      matrix:
        include:
#        - platform: windows-2019
#          build_arch: x64
#          python_arch: x64
#          spec: 3.6
#        - platform: windows-2019
#          build_arch: x64
#          python_arch: x64
#          spec: 3.7
#        - platform: windows-2019
#          build_arch: x64
#          python_arch: x64
#          spec: 3.8
#        - platform: windows-2019
#          build_arch: x64
#          python_arch: x64
#          spec: 3.9
#        - platform: windows-2019
#          build_arch: x64
#          python_arch: x64
#          spec: '3.10'
#        - platform: windows-2019
#          build_arch: x64
#          python_arch: x64
#          spec: '3.11'
        - platform: windows-2019
          build_arch: x64
          python_arch: x64
          spec: '3.12.0-rc.1'
#        - platform: windows-2019
#          build_arch: win32
#          python_arch: x86
#          spec: 3.6
#        - platform: windows-2019
#          build_arch: win32
#          python_arch: x86
#          spec: 3.7
#        - platform: windows-2019
#          build_arch: win32
#          python_arch: x86
#          spec: 3.8
#        - platform: windows-2019
#          build_arch: win32
#          python_arch: x86
#          spec: 3.9
#        - platform: windows-2019
#          build_arch: win32
#          python_arch: x86
#          spec: '3.10'
#        - platform: windows-2019
#          build_arch: win32
#          python_arch: x86
#          spec: '3.11'
        - platform: windows-2019
          build_arch: win32
          python_arch: x86
          spec: '3.12.0-rc.1'
    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: Checkout pyyaml
      uses: actions/checkout@v3

    - name: Get cached libyaml state
      id: cached_libyaml
      uses: actions/cache/restore@v3
      with:
        path: libyaml
        key: libyaml_${{matrix.platform}}_${{matrix.build_arch}}_${{env.LIBYAML_REF}}
        fail-on-cache-miss: true

    - name: Install python ${{ matrix.spec }}
      uses: actions/setup-python@v4
      with:
        architecture: ${{ matrix.python_arch }}
        python-version: ${{ matrix.spec }}

    - name: Build/Test/Package
      env:
        PYYAML_FORCE_CYTHON: 1
        PYYAML_FORCE_LIBYAML: 1
      shell: bash
      run: |
        set -eux
        python -V
        python -m pip install "Cython<3.0" setuptools wheel

        python setup.py \
        --with-libyaml build_ext \
        -I libyaml/include \
        -L libyaml/build/Release \
        -D YAML_DECLARE_STATIC \
        build bdist_wheel

        # run tests on built wheel
        python -m pip install dist/*.whl
        python tests/lib/test_all.py

    - name: Upload artifacts
      uses: actions/upload-artifact@v3
      with:
        name: dist
        path: dist/*.whl
        if-no-files-found: error
...
