style: format code with Black #590
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: Python package | |
on: | |
# The following config trigger the workflow upon commits but not tags creation | |
push: | |
branches: | |
- '**' | |
tags-ignore: | |
- '**' | |
pull_request: | |
# Ensure this workflow's jobs can be triggered from other workflows, e.g. publish | |
workflow_call: | |
jobs: | |
build: | |
runs-on: ubuntu-20.04 | |
strategy: | |
max-parallel: 7 | |
matrix: | |
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Extract repository name which is also our primary package name | |
run: echo "REPO_NAME=$(basename $GITHUB_REPOSITORY)" >> $GITHUB_ENV | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' # caching pip dependencies will speed up subsequent runs | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -e .[tests] | |
- name: Lint with flake8 | |
run: | | |
# stop the build if there are Python syntax errors or undefined names | |
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics | |
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide | |
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics | |
# - name: Setup upterm session | |
# uses: lhotari/action-upterm@v1 | |
# with: | |
# ## limits ssh access and adds the ssh public key for the user which triggered the workflow | |
# limit-access-to-actor: true | |
# ## limits ssh access and adds the ssh public keys of the listed GitHub users | |
# limit-access-to-users: dvershinin | |
- name: Test with pytest | |
run: | | |
pytest -v -n auto --cov=$REPO_NAME --cov-report=xml --junitxml=junit/test-results-${{ matrix.python-version }}.xml | |
env: | |
LASTVERSION_GITHUB_API_TOKEN: ${{ secrets.LASTVERSION_GITHUB_API_TOKEN }} | |
- name: Upload pytest test results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: pytest-results-${{ matrix.python-version }} | |
path: junit/test-results-${{ matrix.python-version }}.xml | |
# Use always() to always run this step to publish test results when there are test failures | |
if: ${{ always() }} | |
- name: Upload coverage to Codacy | |
run: | | |
bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r coverage.xml | |
env: | |
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
- name: Update .spec files | |
run: | | |
# ensure changelog is generated | |
echo "%packager Dick Solomon <[email protected]>" >> ~/.rpmmacros | |
cd tests | |
lastversion brotli.spec | |
lastversion nginx-module-immutable.spec | |
if lastversion libmozjpeg.spec; then | |
exit 1 | |
fi | |
rm -rf libmozjpeg.spec | |
env: | |
LASTVERSION_GITHUB_API_TOKEN: ${{ secrets.LASTVERSION_GITHUB_API_TOKEN }} | |
- name: 'Upload brotli.spec artifact' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: brotli.spec | |
path: tests/brotli.spec | |
- name: 'Upload nginx-module-immutable.spec artifact' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: nginx-module-immutable.spec | |
path: tests/nginx-module-immutable.spec | |
build-brotli-rpm: | |
needs: build | |
runs-on: ubuntu-20.04 | |
container: getpagespeed/rpmbuilder:centos-8 | |
steps: | |
- name: Download a single artifact | |
uses: actions/download-artifact@v2 | |
with: | |
name: brotli.spec | |
- name: Build updated spec | |
run: | | |
mkdir -p /github/home/rpmbuild/{SOURCES,SPECS}/ | |
mv *.spec /sources/ | |
build | |
build-nginx-module-immutable-rpm: | |
needs: build | |
runs-on: ubuntu-20.04 | |
container: getpagespeed/rpmbuilder:centos-8 | |
steps: | |
- name: Download a single artifact | |
uses: actions/download-artifact@v2 | |
with: | |
name: nginx-module-immutable.spec | |
- name: Build updated spec | |
run: | | |
mkdir -p /github/home/rpmbuild/{SOURCES,SPECS}/ | |
mv *.spec /sources/ | |
yum -y install nginx-devel | |
build |