Skip to content

feat: Add production logging system + project structure improvements #29

feat: Add production logging system + project structure improvements

feat: Add production logging system + project structure improvements #29

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches: ["main"]
types: [opened, synchronize, reopened, closed]
permissions:
contents: read
pull-requests: read
jobs:
semantic-pr:
if: github.event_name == 'pull_request' && github.event.action != 'closed'
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
format:
if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || (github.event_name == 'pull_request' && github.event.action != 'closed')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: |
pyproject.toml
*.py
- name: Set up Python
run: uv python install 3.12
- name: Install dependencies
run: |
uv venv --python 3.12
make sync
- name: Format code
run: make format
lint:
needs: format
if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || (github.event_name == 'pull_request' && github.event.action != 'closed')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: |
pyproject.toml
*.py
- name: Set up Python
run: uv python install 3.12
- name: Install dependencies
run: |
uv venv --python 3.12
make sync
- name: Run linters
run: make lint
type-check:
if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || (github.event_name == 'pull_request' && github.event.action != 'closed')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: |
pyproject.toml
*.py
- name: Set up Python
run: uv python install 3.12
- name: Install dependencies
run: |
uv venv --python 3.12
make sync
- name: Run type checks
run: make type-check
test:
if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || (github.event_name == 'pull_request' && github.event.action != 'closed')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: |
pyproject.toml
*.py
- name: Set up Python
run: uv python install 3.12
- name: Install dependencies
run: |
uv venv --python 3.12
make sync
- name: Run tests
run: make test-unit
merged-test:
if: github.event_name == 'pull_request' && github.event.action != 'closed'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.merge_commit_sha }}
fetch-depth: 0
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: |
pyproject.toml
*.py
- name: Set up Python
run: uv python install 3.12
- name: Install dependencies
run: |
uv venv --python 3.12
make sync
- name: Run tests
run: make test-unit
release:
needs: [format, lint, type-check, test]
if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || (github.event.action == 'closed' && github.event.pull_request.merged == true)
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.RELEASE_TOKEN }}
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: |
pyproject.toml
*.py
- name: Set up Python
run: uv python install 3.12
- name: Install dependencies
run: |
uv venv --python 3.12
make sync
uv pip install python-semantic-release
- name: Configure Git
run: |
git config user.name "GitHub Actions"
git config user.email "actions@github.com"
- name: Bump version and publish release
env:
GH_TOKEN: ${{ secrets.RELEASE_TOKEN }}
run: |
uv run semantic-release version
git push --follow-tags origin ${{ github.ref_name }}
uv run semantic-release publish