Skip to content

Commit

Permalink
feat: add GitHub Actions workflow to run pytest
Browse files Browse the repository at this point in the history
- sets Python version for GitHub workflows
- adds workflow and shell script that runs pytest
  • Loading branch information
lalver1 committed Dec 10, 2024
1 parent 4063577 commit 2685c50
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/workflows/.python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.12
51 changes: 51 additions & 0 deletions .github/workflows/tests-pytest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Pytest

on: [push, pull_request, workflow_call]

jobs:
pytest:
runs-on: ubuntu-latest
permissions:
# Gives the action the necessary permissions for publishing new
# comments in pull requests.
pull-requests: write
# Gives the action the necessary permissions for pushing data to the
# python-coverage-comment-action branch, and for editing existing
# comments (to avoid publishing multiple comments in the same PR)
contents: write
steps:
- name: Check out code
uses: actions/checkout@v4

- name: Install system packages
run: |
sudo apt-get update -y
sudo apt-get install -y gettext
- uses: actions/setup-python@v5
with:
python-version-file: .github/workflows/.python-version
cache: pip
cache-dependency-path: "**/pyproject.toml"

- name: Install Python dependencies
run: pip install -e .[test]

- name: Run setup
run: ./bin/init.sh

- name: Run tests
run: ./tests/pytest/run.sh

- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: pems/static/coverage

- name: Coverage comment
uses: py-cov-action/python-coverage-comment-action@v3
with:
GITHUB_TOKEN: ${{ github.token }}
MINIMUM_GREEN: 90
MINIMUM_ORANGE: 80
10 changes: 10 additions & 0 deletions tests/pytest/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -eu

# run normal pytests
coverage run -m pytest

# clean out old coverage results
rm -rf pems/static/coverage

coverage html --directory pems/static/coverage

0 comments on commit 2685c50

Please sign in to comment.