Skip to content

6 apply template for initial structure #9

6 apply template for initial structure

6 apply template for initial structure #9

Workflow file for this run

name: Python CI Pipeline
on:
push:
branches:
- "*"
pull_request:
branches:
- main
jobs:
test:
strategy:
matrix:
requirements: [backend/requirements.txt, frontend/requirements.txt]
include:
- dir: backend/tests/
requirements: backend/requirements.txt
- dir: frontend/tests/
requirements: frontend/requirements.txt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip --quiet
python -m pip install uv --quiet
uv venv
source .venv/bin/activate
echo PATH=$PATH >> $GITHUB_ENV
uv pip install -r ${{ matrix.requirements }} --quiet
- name: Run tests with pytest
run: |
python -m pip install --upgrade pip --quiet
python -m pip install uv --quiet
uv venv
source .venv/bin/activate
uv pip install pytest pytest-cov --quiet
pytest ${{ matrix.dir }} --doctest-modules --junitxml=junit/test-results.xml --cov=com --cov-report=xml --cov-report=html
check:
strategy:
matrix:
requirements: [backend/requirements.txt, frontend/requirements.txt]
include:
- dir: backend/
requirements: backend/requirements.txt
- dir: frontend/
requirements: frontend/requirements.txt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip --quiet
python -m pip install uv --quiet
uv venv
source .venv/bin/activate
echo PATH=$PATH >> $GITHUB_ENV
uv pip install -r ${{ matrix.requirements }} --quiet
- name: Ruff Check
run: |
uv pip install ruff
ruff check ${{ matrix.dir }} --output-format=github .
- name: Mypy Check
run: |
uv pip install mypy
mypy ${{ matrix.dir }} --disable-error-code=import-untyped
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip --quiet
python -m pip install uv --quiet
uv venv
source .venv/bin/activate
echo PATH=$PATH >> $GITHUB_ENV
uv pip install pre-commit
- name: Pre-commit Update Hooks
run: |
pre-commit autoupdate
- name: Pre-commit Format
id: precommit
continue-on-error: true
run: |
pre-commit install
pre-commit run --show-diff-on-failure --color=always --all-files
- name: Check for changes
id: git-check
run: |
git diff --exit-code || echo "changes=true" >> $GITHUB_OUTPUT
- name: Commit and push changes
if: steps.git-check.outputs.changes == 'true'
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add -A
git commit -m "style: applied automatic formatting changes"
git pull --rebase origin ${{ github.ref }}
git push origin HEAD:${{ github.ref }}
version:
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
needs: [test, check, format]
runs-on: ubuntu-latest
name: "Bump version and create changelog with commitizen"
steps:
- uses: actions/checkout@v4
with:
token: "${{ secrets.GITHUB_TOKEN }}"
fetch-depth: 0
- name: Create bump and changelog
uses: commitizen-tools/commitizen-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}