---
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@v2

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

    - name: Install build deps
      run: |
        python -V
        python -m pip install build

    - name: Build sdist
      run: |
        # We DO want to force Cythoning, at least until 6.0.
        export PYYAML_FORCE_CYTHON=1
        # We don't actually want to build the lib.
        export PYYAML_FORCE_LIBYAML=0

        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@v2
      with:
        name: dist
        path: dist/*.tar.gz


  linux_libyaml:
    name: libyaml ${{matrix.arch}} ${{matrix.platform}}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        platform:
        # manylinux1 is forward-compatible to 2010/2014.
        #- manylinux2014
        #- manylinux2010
        - manylinux1
        arch:
        - x86_64
    env:
      DOCKER_IMAGE: quay.io/pypa/${{matrix.platform}}_${{matrix.arch}}
    steps:
    - name: Check cached libyaml state
      id: cached_libyaml
      uses: actions/cache@v2
      with:
        path: libyaml
        key: libyaml_${{matrix.platform}}_${{matrix.arch}}_${{env.LIBYAML_REF}}

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

  linux_pyyaml:
    needs: linux_libyaml
    name: pyyaml ${{matrix.arch}} ${{matrix.platform}} ${{matrix.python_tag}}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        platform:
        # So long as manylinux1 container builds work, they're
        # forward-compatible to 2010/2014.
        # - manylinux2014
        # - manylinux2010
        - manylinux1
        arch:
        - x86_64
        python_tag:
        # NB manylinux >=2014 containers don't have Python 2.7, so we have to
        # use exclude to skip it.
        - cp27-cp27mu
        - cp36-cp36m
        - cp37-cp37m
        - cp38-cp38
        - cp39-cp39
#        exclude:
#        - platform: manylinux2014
#          arch: x86_64
#          python_tag: cp27-cp27mu
    env:
      AW_PLAT: ${{matrix.platform}}_${{matrix.arch}}
      DOCKER_IMAGE: quay.io/pypa/${{matrix.platform}}_${{matrix.arch}}
      PYTHON_TAG: ${{matrix.python_tag}}
      PYYAML_BUILD_WHEELS: 1
    steps:
    - uses: actions/checkout@v2

    - name: Fetch cached libyaml
      id: cached_libyaml
      uses: actions/cache@v2
      with:
        path: libyaml
        key: libyaml_${{matrix.platform}}_${{matrix.arch}}_${{env.LIBYAML_REF}}

    - name: Ensure libyaml fetched
      run: exit 1
      if: steps.cached_libyaml.outputs.cache-hit != 'true'

    - name: Start container
      run: >
        docker run --rm --tty --detach
        --name worker
        --volume "$(pwd):/io"
        "$DOCKER_IMAGE"
        bash

    - name: Build/Test/Package
      run: >
        docker exec
        --env PYTHON_TAG
        --env PYYAML_RUN_TESTS
        --env PYYAML_BUILD_WHEELS
        --env AW_PLAT
        --workdir /io worker
        /io/packaging/build/manylinux.sh

    - uses: actions/upload-artifact@v2
      with:
        name: dist
        path: dist/*.whl

  macos_libyaml:
    name: libyaml ${{matrix.arch}} ${{matrix.platform}}
    runs-on: ${{matrix.platform}}
    strategy:
      matrix:
        platform:
        - macos-10.15
        arch:
        - x86_64
    steps:
    - name: Check cached libyaml state
      id: cached_libyaml
      uses: actions/cache@v2
      with:
        path: libyaml
        key: libyaml_${{matrix.platform}}_${{matrix.arch}}_${{env.LIBYAML_REF}}

    - name: Checkout pyyaml
      uses: actions/checkout@v2
      if: steps.cached_libyaml.outputs.cache-hit != 'true'

    - name: Build libyaml
      env:
        MACOSX_DEPLOYMENT_TARGET: '10.9'
      run: |
        brew install automake coreutils
        bash ./packaging/build/libyaml.sh
      if: steps.cached_libyaml.outputs.cache-hit != 'true'

  macos_pyyaml:
    needs: macos_libyaml
    name: pyyaml ${{matrix.arch}} ${{matrix.platform}} ${{matrix.python_tag}}
    runs-on: ${{matrix.platform}}
    strategy:
      matrix:
        platform:
        - macos-10.15
        arch:
        - x86_64
        python_tag:
        - cp27*
        - cp36*
        - cp37*
        - cp38*
        - cp39*
    steps:
    - name: Checkout pyyaml
      uses: actions/checkout@v2

    - name: Get cached libyaml state
      id: cached_libyaml
      uses: actions/cache@v2
      with:
        path: libyaml
        key: libyaml_${{matrix.platform}}_${{matrix.arch}}_${{env.LIBYAML_REF}}

    - name: Ensure libyaml fetched
      run: exit 1
      if: steps.cached_libyaml.outputs.cache-hit != 'true'

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

    - name: Build/Test/Package
      env:
        CIBW_BUILD: ${{matrix.python_tag}}
        CIBW_BUILD_VERBOSITY: 1
      run: bash ./packaging/build/macos.sh

    - uses: actions/upload-artifact@v2
      with:
        name: dist
        path: dist/*.whl
...
