spiff-arena/flask-bpmn/.github/workflows/tests.yml

190 lines
6.6 KiB
YAML
Raw Normal View History

name: Tests
on:
- push
- pull_request
jobs:
tests:
name: ${{ matrix.session }} ${{ matrix.python }} / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- { python: "3.10", os: "ubuntu-latest", session: "pre-commit" }
- { python: "3.10", os: "ubuntu-latest", session: "safety" }
- { python: "3.10", os: "ubuntu-latest", session: "mypy" }
- { python: "3.9", os: "ubuntu-latest", session: "mypy" }
- { python: "3.8", os: "ubuntu-latest", session: "mypy" }
- { python: "3.7", os: "ubuntu-latest", session: "mypy" }
- { python: "3.10", os: "ubuntu-latest", session: "tests" }
- { python: "3.9", os: "ubuntu-latest", session: "tests" }
- { python: "3.8", os: "ubuntu-latest", session: "tests" }
- { python: "3.7", os: "ubuntu-latest", session: "tests" }
- { python: "3.10", os: "windows-latest", session: "tests" }
- { python: "3.10", os: "macos-latest", session: "tests" }
- { python: "3.10", os: "ubuntu-latest", session: "typeguard" }
- { python: "3.10", os: "ubuntu-latest", session: "xdoctest" }
- { python: "3.10", os: "ubuntu-latest", session: "docs-build" }
env:
NOXSESSION: ${{ matrix.session }}
FORCE_COLOR: "1"
PRE_COMMIT_COLOR: "always"
steps:
- name: Check out the repository
uses: actions/checkout@v3.0.2
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v4.2.0
with:
python-version: ${{ matrix.python }}
- name: Upgrade pip
run: |
pip install --constraint=.github/workflows/constraints.txt pip
pip --version
- name: Upgrade pip in virtual environments
shell: python
run: |
import os
import pip
with open(os.environ["GITHUB_ENV"], mode="a") as io:
print(f"VIRTUALENV_PIP={pip.__version__}", file=io)
- name: Install Poetry
run: |
pipx install --pip-args=--constraint=.github/workflows/constraints.txt poetry
poetry --version
- name: Install Nox
run: |
pipx install --pip-args=--constraint=.github/workflows/constraints.txt nox
pipx inject --pip-args=--constraint=.github/workflows/constraints.txt nox nox-poetry
nox --version
- name: Compute pre-commit cache key
if: matrix.session == 'pre-commit'
id: pre-commit-cache
shell: python
run: |
import hashlib
import sys
python = "py{}.{}".format(*sys.version_info[:2])
payload = sys.version.encode() + sys.executable.encode()
digest = hashlib.sha256(payload).hexdigest()
result = "${{ runner.os }}-{}-{}-pre-commit".format(python, digest[:8])
print("::set-output name=result::{}".format(result))
- name: Restore pre-commit cache
uses: actions/cache@v3.0.6
if: matrix.session == 'pre-commit'
with:
path: ~/.cache/pre-commit
key: ${{ steps.pre-commit-cache.outputs.result }}-${{ hashFiles('.pre-commit-config.yaml') }}
restore-keys: |
${{ steps.pre-commit-cache.outputs.result }}-
- name: Run Nox
run: |
nox --force-color --python=${{ matrix.python }}
- name: Upload coverage data
# pin to upload coverage from only one matrix entry, otherwise coverage gets confused later
if: always() && matrix.session == 'tests' && matrix.python == '3.10' && matrix.os == 'ubuntu-latest'
Squashed 'flask-bpmn/' changes from c7e2f98d..aae17b7b aae17b7b Merge pull request #141 from sartography/dependabot/pip/dot-github/workflows/pip-22.3 e003df4a Merge pull request #148 from sartography/dependabot/pip/sphinx-autoapi-2.0.0 3740daef Bump pip from 22.2.2 to 22.3 in /.github/workflows b66dce63 Merge pull request #138 from sartography/dependabot/pip/dot-github/workflows/poetry-1.2.2 4fed6cb3 Bump sphinx-autoapi from 1.9.0 to 2.0.0 235c0a87 Merge pull request #147 from sartography/dependabot/pip/reorder-python-imports-3.8.5 1ba76081 Bump reorder-python-imports from 3.8.2 to 3.8.5 d694c6c4 Bump poetry from 1.1.14 to 1.2.2 in /.github/workflows 2409d03e Merge pull request #146 from sartography/dependabot/pip/safety-2.3.1 366238e6 Merge pull request #145 from sartography/dependabot/github_actions/actions/download-artifact-3.0.1 b8807520 Bump safety from 2.1.1 to 2.3.1 be0a29db Bump actions/download-artifact from 3.0.0 to 3.0.1 05ec31cf Merge pull request #132 from sartography/dependabot/pip/docs/furo-2022.9.29 4c6bf71d Bump furo from 2022.6.21 to 2022.9.29 in /docs 6ab6009b Merge pull request #142 from sartography/dependabot/pip/docs/sphinx-5.3.0 43482306 Merge pull request #118 from sartography/dependabot/pip/pep8-naming-0.13.2 a77fcfd6 Bump pep8-naming from 0.13.1 to 0.13.2 726673dc Bump sphinx from 5.1.1 to 5.3.0 in /docs 3a4bf06b Merge pull request #139 from sartography/dependabot/pip/xdoctest-1.1.0 367557ea Bump xdoctest from 1.0.2 to 1.1.0 a3a5fc97 Merge pull request #144 from sartography/dependabot/github_actions/actions/upload-artifact-3.1.1 796e8478 Bump actions/upload-artifact from 3.0.0 to 3.1.1 git-subtree-dir: flask-bpmn git-subtree-split: aae17b7b4152fe09d4a365ac5ec85289218c663b
2022-10-24 21:53:04 +00:00
uses: "actions/upload-artifact@v3.1.1"
with:
name: coverage-data
path: ".coverage.*"
- name: Upload documentation
if: matrix.session == 'docs-build'
Squashed 'flask-bpmn/' changes from c7e2f98d..aae17b7b aae17b7b Merge pull request #141 from sartography/dependabot/pip/dot-github/workflows/pip-22.3 e003df4a Merge pull request #148 from sartography/dependabot/pip/sphinx-autoapi-2.0.0 3740daef Bump pip from 22.2.2 to 22.3 in /.github/workflows b66dce63 Merge pull request #138 from sartography/dependabot/pip/dot-github/workflows/poetry-1.2.2 4fed6cb3 Bump sphinx-autoapi from 1.9.0 to 2.0.0 235c0a87 Merge pull request #147 from sartography/dependabot/pip/reorder-python-imports-3.8.5 1ba76081 Bump reorder-python-imports from 3.8.2 to 3.8.5 d694c6c4 Bump poetry from 1.1.14 to 1.2.2 in /.github/workflows 2409d03e Merge pull request #146 from sartography/dependabot/pip/safety-2.3.1 366238e6 Merge pull request #145 from sartography/dependabot/github_actions/actions/download-artifact-3.0.1 b8807520 Bump safety from 2.1.1 to 2.3.1 be0a29db Bump actions/download-artifact from 3.0.0 to 3.0.1 05ec31cf Merge pull request #132 from sartography/dependabot/pip/docs/furo-2022.9.29 4c6bf71d Bump furo from 2022.6.21 to 2022.9.29 in /docs 6ab6009b Merge pull request #142 from sartography/dependabot/pip/docs/sphinx-5.3.0 43482306 Merge pull request #118 from sartography/dependabot/pip/pep8-naming-0.13.2 a77fcfd6 Bump pep8-naming from 0.13.1 to 0.13.2 726673dc Bump sphinx from 5.1.1 to 5.3.0 in /docs 3a4bf06b Merge pull request #139 from sartography/dependabot/pip/xdoctest-1.1.0 367557ea Bump xdoctest from 1.0.2 to 1.1.0 a3a5fc97 Merge pull request #144 from sartography/dependabot/github_actions/actions/upload-artifact-3.1.1 796e8478 Bump actions/upload-artifact from 3.0.0 to 3.1.1 git-subtree-dir: flask-bpmn git-subtree-split: aae17b7b4152fe09d4a365ac5ec85289218c663b
2022-10-24 21:53:04 +00:00
uses: actions/upload-artifact@v3.1.1
with:
name: docs
path: docs/_build
coverage:
runs-on: ubuntu-latest
needs: tests
steps:
- name: Check out the repository
uses: actions/checkout@v3.0.2
with:
# Disabling shallow clone is recommended for improving relevancy of reporting in sonarcloud
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4.2.0
with:
python-version: "3.10"
- name: Upgrade pip
run: |
pip install --constraint=.github/workflows/constraints.txt pip
pip --version
- name: Install Poetry
run: |
pipx install --pip-args=--constraint=.github/workflows/constraints.txt poetry
poetry --version
- name: Install Nox
run: |
pipx install --pip-args=--constraint=.github/workflows/constraints.txt nox
pipx inject --pip-args=--constraint=.github/workflows/constraints.txt nox nox-poetry
nox --version
- name: Download coverage data
Squashed 'flask-bpmn/' changes from c7e2f98d..aae17b7b aae17b7b Merge pull request #141 from sartography/dependabot/pip/dot-github/workflows/pip-22.3 e003df4a Merge pull request #148 from sartography/dependabot/pip/sphinx-autoapi-2.0.0 3740daef Bump pip from 22.2.2 to 22.3 in /.github/workflows b66dce63 Merge pull request #138 from sartography/dependabot/pip/dot-github/workflows/poetry-1.2.2 4fed6cb3 Bump sphinx-autoapi from 1.9.0 to 2.0.0 235c0a87 Merge pull request #147 from sartography/dependabot/pip/reorder-python-imports-3.8.5 1ba76081 Bump reorder-python-imports from 3.8.2 to 3.8.5 d694c6c4 Bump poetry from 1.1.14 to 1.2.2 in /.github/workflows 2409d03e Merge pull request #146 from sartography/dependabot/pip/safety-2.3.1 366238e6 Merge pull request #145 from sartography/dependabot/github_actions/actions/download-artifact-3.0.1 b8807520 Bump safety from 2.1.1 to 2.3.1 be0a29db Bump actions/download-artifact from 3.0.0 to 3.0.1 05ec31cf Merge pull request #132 from sartography/dependabot/pip/docs/furo-2022.9.29 4c6bf71d Bump furo from 2022.6.21 to 2022.9.29 in /docs 6ab6009b Merge pull request #142 from sartography/dependabot/pip/docs/sphinx-5.3.0 43482306 Merge pull request #118 from sartography/dependabot/pip/pep8-naming-0.13.2 a77fcfd6 Bump pep8-naming from 0.13.1 to 0.13.2 726673dc Bump sphinx from 5.1.1 to 5.3.0 in /docs 3a4bf06b Merge pull request #139 from sartography/dependabot/pip/xdoctest-1.1.0 367557ea Bump xdoctest from 1.0.2 to 1.1.0 a3a5fc97 Merge pull request #144 from sartography/dependabot/github_actions/actions/upload-artifact-3.1.1 796e8478 Bump actions/upload-artifact from 3.0.0 to 3.1.1 git-subtree-dir: flask-bpmn git-subtree-split: aae17b7b4152fe09d4a365ac5ec85289218c663b
2022-10-24 21:53:04 +00:00
uses: actions/download-artifact@v3.0.1
with:
name: coverage-data
- name: Combine coverage data and display human readable report
run: |
find . -name \*.pyc -delete
nox --force-color --session=coverage
- name: Create coverage report
run: |
nox --force-color --session=coverage -- xml
- name: Upload coverage report
uses: codecov/codecov-action@v3.1.0
with:
# server is flaky. see https://github.com/codecov/codecov-action/issues/598
fail_ci_if_error: false
- name: SonarCloud Scan
# thought about just skipping dependabot
# if: ${{ github.actor != 'dependabot[bot]' }}
# but figured all pull requests seems better, since none of them will have access to sonarcloud.
# however, with just skipping pull requests, the build associated with "Triggered via push" is also associated with the pull request and also fails hitting sonarcloud
# if: ${{ github.event_name != 'pull_request' }}
# so just skip everything but main
if: github.ref_name == 'main'
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
# part about saving PR number and then using it from auto-merge-dependabot-prs from:
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_run
- name: Save PR number
if: ${{ github.event_name == 'pull_request' }}
env:
PR_NUMBER: ${{ github.event.number }}
run: |
mkdir -p ./pr
echo "$PR_NUMBER" > ./pr/pr_number
Squashed 'flask-bpmn/' changes from c7e2f98d..aae17b7b aae17b7b Merge pull request #141 from sartography/dependabot/pip/dot-github/workflows/pip-22.3 e003df4a Merge pull request #148 from sartography/dependabot/pip/sphinx-autoapi-2.0.0 3740daef Bump pip from 22.2.2 to 22.3 in /.github/workflows b66dce63 Merge pull request #138 from sartography/dependabot/pip/dot-github/workflows/poetry-1.2.2 4fed6cb3 Bump sphinx-autoapi from 1.9.0 to 2.0.0 235c0a87 Merge pull request #147 from sartography/dependabot/pip/reorder-python-imports-3.8.5 1ba76081 Bump reorder-python-imports from 3.8.2 to 3.8.5 d694c6c4 Bump poetry from 1.1.14 to 1.2.2 in /.github/workflows 2409d03e Merge pull request #146 from sartography/dependabot/pip/safety-2.3.1 366238e6 Merge pull request #145 from sartography/dependabot/github_actions/actions/download-artifact-3.0.1 b8807520 Bump safety from 2.1.1 to 2.3.1 be0a29db Bump actions/download-artifact from 3.0.0 to 3.0.1 05ec31cf Merge pull request #132 from sartography/dependabot/pip/docs/furo-2022.9.29 4c6bf71d Bump furo from 2022.6.21 to 2022.9.29 in /docs 6ab6009b Merge pull request #142 from sartography/dependabot/pip/docs/sphinx-5.3.0 43482306 Merge pull request #118 from sartography/dependabot/pip/pep8-naming-0.13.2 a77fcfd6 Bump pep8-naming from 0.13.1 to 0.13.2 726673dc Bump sphinx from 5.1.1 to 5.3.0 in /docs 3a4bf06b Merge pull request #139 from sartography/dependabot/pip/xdoctest-1.1.0 367557ea Bump xdoctest from 1.0.2 to 1.1.0 a3a5fc97 Merge pull request #144 from sartography/dependabot/github_actions/actions/upload-artifact-3.1.1 796e8478 Bump actions/upload-artifact from 3.0.0 to 3.1.1 git-subtree-dir: flask-bpmn git-subtree-split: aae17b7b4152fe09d4a365ac5ec85289218c663b
2022-10-24 21:53:04 +00:00
- uses: actions/upload-artifact@v3.1.1
with:
name: pr_number
path: pr/