-
Notifications
You must be signed in to change notification settings - Fork 515
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'yaml:master' into add-yn-yaml-booleans
- Loading branch information
Showing
67 changed files
with
1,182 additions
and
270 deletions.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,250 @@ | ||
--- | ||
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 | ||
... |
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
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.