python-dependency-injector/.github/workflows/publishing.yml

128 lines
3.4 KiB
YAML
Raw Normal View History

2021-01-27 03:51:17 +03:00
name: Publishing
2021-01-26 16:12:33 +03:00
on:
push:
tags:
2021-01-26 16:13:54 +03:00
- '*'
2021-01-26 16:12:33 +03:00
jobs:
2021-01-27 03:25:10 +03:00
tests:
name: Run tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.9
- run: pip install tox
- run: tox
env:
TOXENV: 3.9
linters:
name: Run linters
runs-on: ubuntu-latest
strategy:
matrix:
toxenv: [flake8, pydocstyle, mypy, pylint]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.9
- run: pip install tox
- run: tox
env:
TOXENV: ${{ matrix.toxenv }}
2021-01-26 17:20:41 +03:00
build-sdist:
name: Build source tarball
2021-01-27 03:25:10 +03:00
needs: [tests, linters]
2021-01-26 16:12:33 +03:00
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.9
- run: python setup.py sdist
2021-01-26 17:20:41 +03:00
- uses: actions/upload-artifact@v2
with:
path: ./dist/*
2021-01-26 16:26:23 +03:00
2021-01-26 17:20:41 +03:00
build-wheels:
2021-01-26 17:22:31 +03:00
name: Build wheels
2021-01-27 03:25:10 +03:00
needs: [tests, linters]
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
2021-01-26 16:26:23 +03:00
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.9
- run: pip install cibuildwheel==1.8.0
2021-01-26 17:05:40 +03:00
- name: Install Visual C++ for Python 2.7 on Windows
if: runner.os == 'Windows'
run: |
choco install vcpython27 -f -y
2021-01-26 16:26:23 +03:00
- run: cibuildwheel --output-dir wheelhouse
- uses: actions/upload-artifact@v2
with:
path: ./wheelhouse/*.whl
2021-01-27 04:05:28 +03:00
build-wheels-linux-aarch64:
name: Build wheels (ubuntu-latest-aarch64)
2021-01-27 03:25:10 +03:00
needs: [tests, linters]
2021-01-26 17:34:43 +03:00
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- uses: actions/setup-python@v2
with:
python-version: 3.9
- run: pip install cibuildwheel==1.8.0
2021-01-27 04:00:10 +03:00
- run: cibuildwheel --archs aarch64 --output-dir wheelhouse
2021-01-26 17:34:43 +03:00
- uses: actions/upload-artifact@v2
with:
path: ./wheelhouse/*.whl
2021-01-27 03:51:17 +03:00
publish:
2021-01-26 17:20:41 +03:00
name: Publish on PyPI
2021-01-27 04:05:28 +03:00
needs: [build-sdist, build-wheels, build-wheels-linux-aarch64]
2021-01-26 17:20:41 +03:00
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v2
with:
name: artifact
path: dist
- uses: pypa/gh-action-pypi-publish@master
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
2021-01-27 03:51:17 +03:00
publish-docs:
name: Publish docs
needs: [publish]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.9
- run: pip install -r requirements-doc.txt
- run: pip install awscli
- run: pip install -e .
- run: (cd docs && make clean html)
- run: |
aws s3 sync docs/_build/html s3://python-dependency-injector-docs --delete
aws cloudfront create-invalidation --distribution-id ${{ secrets.AWS_CLOUDFRONT_DISTRIBUTION_ID }} --path "/*" > /dev/null
echo "Cache invalidation triggered"
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}