Continuous Integration for main branch #15
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: Main | |
run-name: Continuous Integration for main branch | |
# -- Trigger Events -------------------------------------------------------------------------------- | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: | |
- closed | |
branches: | |
- main | |
# -- Concurrency ----------------------------------------------------------------------------------- | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
# -- Jobs ------------------------------------------------------------------------------------------ | |
jobs: | |
# Format code with Ruff (checks for failure) | |
format: | |
runs-on: ubuntu-latest | |
if: ${{ | |
github.event_name == 'workflow_dispatch'|| | |
github.event_name == 'push' || | |
github.event.pull_request.merged == true | |
}} | |
steps: | |
- name: Checkout code | |
id: checkout-code | |
uses: actions/checkout@v4 | |
- name: Format with ruff | |
id: format-with-ruff | |
uses: astral-sh/ruff-action@v3 | |
with: | |
args: "format" | |
#Build documentation without deploying | |
docs: | |
runs-on: ubuntu-latest | |
if: ${{ | |
github.event_name == 'workflow_dispatch'|| | |
github.event_name == 'push' || | |
github.event.pull_request.merged == true | |
}} | |
steps: | |
- name: Checkout code | |
id: checkout-code | |
uses: actions/checkout@v4 | |
- name: Install uv | |
id: setup-uv | |
uses: astral-sh/setup-uv@v5 | |
with: | |
enable-cache: true | |
- name: Install dependencies | |
id: install-deps | |
run: uv sync --only-group docs | |
- name: Build MkDocs documentation | |
id: build-docs | |
run: uv run mkdocs build | |
# Run tests with Pytest, upload coverage report if main is changed | |
test: | |
runs-on: ubuntu-latest | |
if: ${{ | |
github.event_name == 'workflow_dispatch'|| | |
github.event_name == 'push' || | |
github.event.pull_request.merged == true | |
}} | |
environment: main | |
steps: | |
- name: Checkout code | |
id: checkout-code | |
uses: actions/checkout@v4 | |
- name: Install uv | |
id: setup-uv | |
uses: astral-sh/setup-uv@v5 | |
with: | |
enable-cache: true | |
- name: Install dependencies | |
id: install-deps | |
run: uv sync --only-group test | |
- name: Run tests with Pytest | |
id: run-tests | |
run: uv run pytest --cov-branch --cov-report=xml:coverage.xml | |
- name: Upload coverage report | |
id: upload-coverage | |
if: ${{ github.event_name == 'push' }} | |
uses: codecov/codecov-action@v5 | |
with: | |
files: coverage.xml | |
token: ${{ secrets.CODECOV_TOKEN }} |