Skip to content

MNT: update github actions with logical sequence of tests #1258

MNT: update github actions with logical sequence of tests

MNT: update github actions with logical sequence of tests #1258

Workflow file for this run

name: PyTest
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- "**.py"
- ".github/**"
defaults:
run:
shell: bash
jobs:
Build_and_Unit:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [3.8, 3.12]
env:
OS: ${{ matrix.os }}
PYTHON: ${{ matrix.python-version }}
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
cache: pip
- name: Install rocketpy
run: pip install .
- name: Test importing rocketpy
run: python -c "import sys, rocketpy; print(f'{rocketpy.__name__} running on Python {sys.version}')"
- name: Install dev dependencies
run: pip install -r requirements_tests.txt
- name: Run pytest (Unit Tests)
run: pytest -k "unit" --cov=rocketpy --cov-report=xml
- name: Call reusable workflow for Codecov upload
uses: ./.github/workflows/upload-to-codecov.yml
with:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
os: ${{ matrix.os }}
python: ${{ matrix.python-version }}
Acceptance:
needs: Build_and_Unit
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [3.8, 3.12]
env:
OS: ${{ matrix.os }}
PYTHON: ${{ matrix.python-version }}
steps:
- name: Install dependencies
run: pip install -r requirements_tests.txt
- name: Run pytest (Acceptance Tests)
run: pytest --cov=rocketpy --cov-report=xml
- name: Call reusable workflow for Codecov upload
uses: ./.github/workflows/upload-to-codecov.yml
with:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
os: ${{ matrix.os }}
python: ${{ matrix.python-version }}
Integration:
needs: Build_and_Unit
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [3.8, 3.12]
env:
OS: ${{ matrix.os }}
PYTHON: ${{ matrix.python-version }}
steps:
- name: Install dependencies
run: pip install -r requirements_tests.txt
- name: Run pytest (Integration Tests)
run: pytest -k "not unit and not acceptance" --cov=rocketpy --cov-report=xml
- name: Call reusable workflow for Codecov upload
uses: ./.github/workflows/upload-to-codecov.yml
with:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
os: ${{ matrix.os }}
python: ${{ matrix.python-version }}
Doc:
needs: Build_and_Unit
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [3.8, 3.12]
env:
OS: ${{ matrix.os }}
PYTHON: ${{ matrix.python-version }}
steps:
- name: Install dependencies
run: pip install -r requirements_tests.txt
- name: Run pytest (Documentation Tests)
run: |
cd rocketpy
pytest --doctest-modules --cov=rocketpy --cov-report=xml
- name: Call reusable workflow for Codecov upload
uses: ./.github/workflows/upload-to-codecov.yml
with:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
os: ${{ matrix.os }}
python: ${{ matrix.python-version }}
Slow:
needs: [Acceptance, Integration, Doc]
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [3.8, 3.12]
env:
OS: ${{ matrix.os }}
PYTHON: ${{ matrix.python-version }}
steps:
- name: Install dependencies
run: pip install -r requirements_tests.txt
- name: Run pytest --runslow
if: github.ref == 'refs/heads/master'
run: |
pytest -m slow --runslow --cov=rocketpy --cov-report=xml
- name: Call reusable workflow for Codecov upload
uses: ./.github/workflows/upload-to-codecov.yml
with:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
os: ${{ matrix.os }}
python: ${{ matrix.python-version }}