Lock file maintenance #99
Workflow file for this run
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: CI | |
on: | |
pull_request: | |
push: | |
branches: [main] | |
tags: ["[0-9]+.[0-9]+.[0-9]+"] | |
jobs: | |
ci: | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.12"] | |
poetry-version: ["1.8.2"] | |
os: [ubuntu-latest] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 15 | |
steps: | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Set up Poetry | |
uses: abatilo/actions-poetry@v3 | |
with: | |
poetry-version: ${{ matrix.poetry-version }} | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: poetry install | |
- name: Configure environment | |
run: poetry run invoke init-workspace | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Start PostgreSQL container | |
run: docker compose up -d | |
- name: Run linting | |
# https://github.com/actions/runner/issues/241#issuecomment-745902718 | |
shell: 'script -q -e -c "bash {0}"' | |
run: poetry run invoke lint | |
- name: Run tests | |
shell: 'script -q -e -c "bash {0}"' | |
run: poetry run invoke test --cov | |
- name: Stop PostgreSQL container | |
if: ${{ always() }} | |
run: docker compose down --remove-orphans --volumes | |
publish: | |
name: Publish package to PyPI | |
if: github.event_name == 'push' && github.ref_type == 'tag' | |
runs-on: ubuntu-latest | |
environment: release | |
permissions: | |
id-token: write | |
needs: | |
- ci | |
steps: | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Set up Poetry | |
uses: abatilo/actions-poetry@v3 | |
with: | |
poetry-version: "1.8.2" | |
- name: Add poetry dynamic versioning plugin | |
run: poetry self add poetry-dynamic-versioning | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Build wheel and sdist | |
run: poetry build | |
- name: Publish package distributions to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 |