Merge pull request #279 from DontShaveTheYak/develop #470
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: Tests | |
on: | |
push: | |
branches: | |
- "master" | |
pull_request_target: | |
types: [opened, synchronize, reopened] | |
jobs: | |
check: | |
name: Check Permissions | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get User Permission | |
id: checkAccess | |
uses: actions-cool/check-user-permission@v2 | |
with: | |
require: write | |
username: ${{ github.triggering_actor }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Check User Permission | |
if: steps.checkAccess.outputs.require-result == 'false' | |
run: | | |
echo "${{ github.triggering_actor }} does not have permissions on this repo." | |
echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" | |
echo "Job originally triggered by ${{ github.actor }}" | |
exit 1 | |
single: | |
runs-on: ubuntu-latest | |
name: Python 3.11 | |
needs: check | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4.1.1 | |
- name: Setup Latest Python | |
uses: actions/setup-python@v5.1.0 | |
with: | |
python-version: 3.11 | |
architecture: x64 | |
- name: Setup Poetry | |
run: | | |
pip install poetry==1.4.0 | |
poetry install | |
- name: Setup requirements | |
run: pip install nox nox_poetry coverage[toml] | |
- name: Run Tests | |
run: nox -s tests -p 3.11 | |
- name: Combine Coverage reports | |
run: nox -s coverage -p 3.11 | |
- name: Convert Coverage | |
run: coverage xml --fail-under=0 | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v4.3.0 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
flags: unit | |
fail_ci_if_error: true | |
multi: | |
needs: single | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.12"] # 3.11 is done in the job above | |
name: Python ${{ matrix.python-version }} | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4.1.1 | |
- name: Setup Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5.1.0 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: Setup Nox | |
run: pip install nox nox_poetry | |
- name: Setup Poetry | |
run: pip install poetry==1.4.0 | |
- name: Run Tests | |
run: nox -s tests -p ${{ matrix.python-version }} |