|
|
@ -5,16 +5,39 @@ on: |
|
|
|
branches: |
|
|
|
- master |
|
|
|
pull_request: |
|
|
|
types: [opened, synchronize] |
|
|
|
types: |
|
|
|
- opened |
|
|
|
- synchronize |
|
|
|
|
|
|
|
jobs: |
|
|
|
lint: |
|
|
|
runs-on: ubuntu-latest |
|
|
|
steps: |
|
|
|
- uses: actions/checkout@v3 |
|
|
|
- name: Set up Python |
|
|
|
uses: actions/setup-python@v4 |
|
|
|
with: |
|
|
|
python-version: "3.11" |
|
|
|
# Issue ref: https://github.com/actions/setup-python/issues/436 |
|
|
|
# cache: "pip" |
|
|
|
# cache-dependency-path: pyproject.toml |
|
|
|
- uses: actions/cache@v3 |
|
|
|
id: cache |
|
|
|
with: |
|
|
|
path: ${{ env.pythonLocation }} |
|
|
|
key: ${{ runner.os }}-python-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml', 'requirements-tests.txt') }}-test-v03 |
|
|
|
- name: Install Dependencies |
|
|
|
if: steps.cache.outputs.cache-hit != 'true' |
|
|
|
run: pip install -r requirements-tests.txt |
|
|
|
- name: Lint |
|
|
|
run: bash scripts/lint.sh |
|
|
|
|
|
|
|
test: |
|
|
|
runs-on: ubuntu-latest |
|
|
|
strategy: |
|
|
|
matrix: |
|
|
|
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] |
|
|
|
fail-fast: false |
|
|
|
|
|
|
|
steps: |
|
|
|
- uses: actions/checkout@v3 |
|
|
|
- name: Set up Python |
|
|
@ -32,8 +55,6 @@ jobs: |
|
|
|
- name: Install Dependencies |
|
|
|
if: steps.cache.outputs.cache-hit != 'true' |
|
|
|
run: pip install -r requirements-tests.txt |
|
|
|
- name: Lint |
|
|
|
run: bash scripts/lint.sh |
|
|
|
- run: mkdir coverage |
|
|
|
- name: Test |
|
|
|
run: bash scripts/test.sh |
|
|
@ -45,33 +66,28 @@ jobs: |
|
|
|
with: |
|
|
|
name: coverage |
|
|
|
path: coverage |
|
|
|
|
|
|
|
coverage-combine: |
|
|
|
needs: [test] |
|
|
|
runs-on: ubuntu-latest |
|
|
|
|
|
|
|
steps: |
|
|
|
- uses: actions/checkout@v3 |
|
|
|
|
|
|
|
- uses: actions/setup-python@v4 |
|
|
|
with: |
|
|
|
python-version: '3.8' |
|
|
|
# Issue ref: https://github.com/actions/setup-python/issues/436 |
|
|
|
# cache: "pip" |
|
|
|
# cache-dependency-path: pyproject.toml |
|
|
|
|
|
|
|
- name: Get coverage files |
|
|
|
uses: actions/download-artifact@v3 |
|
|
|
with: |
|
|
|
name: coverage |
|
|
|
path: coverage |
|
|
|
|
|
|
|
- run: pip install coverage[toml] |
|
|
|
|
|
|
|
- run: ls -la coverage |
|
|
|
- run: coverage combine coverage |
|
|
|
- run: coverage report |
|
|
|
- run: coverage html --show-contexts --title "Coverage for ${{ github.sha }}" |
|
|
|
|
|
|
|
- name: Store coverage HTML |
|
|
|
uses: actions/upload-artifact@v3 |
|
|
|
with: |
|
|
@ -80,14 +96,10 @@ jobs: |
|
|
|
|
|
|
|
# https://github.com/marketplace/actions/alls-green#why |
|
|
|
check: # This job does nothing and is only used for the branch protection |
|
|
|
|
|
|
|
if: always() |
|
|
|
|
|
|
|
needs: |
|
|
|
- coverage-combine |
|
|
|
|
|
|
|
runs-on: ubuntu-latest |
|
|
|
|
|
|
|
steps: |
|
|
|
- name: Decide whether the needed jobs succeeded or failed |
|
|
|
uses: re-actors/alls-green@release/v1 |
|
|
|