Skip to content

ci: migrate SDLC to modern Python stack with uv, rye and ruff #40

ci: migrate SDLC to modern Python stack with uv, rye and ruff

ci: migrate SDLC to modern Python stack with uv, rye and ruff #40

Workflow file for this run

name: Continous Integration (CI)
on:
pull_request:
jobs:
lint:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
architecture: ["x64"]
python-version: ["3.8", "3.9", "3.10", "3.11"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
- uses: eifinger/setup-rye@v3
id: setup-rye
- name: Pin python-version ${{ matrix.python-version }}
run: |
rye pin ${{ matrix.python-version }}
- name: Install dependencies
run: |
make install
- name: Lint
run: |
make lint
unit:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
architecture: ["x64"]
python-version: ["3.8", "3.9", "3.10", "3.11"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
- uses: eifinger/setup-rye@v3
id: setup-rye
- name: Pin python-version ${{ matrix.python-version }}
run: |
rye pin ${{ matrix.python-version }}
- name: Install dependencies
run: |
make install
- name: Run unit tests
env:
MIN_VALID_EVENTS: "10"
GOOGLE_APPLICATION_CREDENTIALS: tests/unit/fixtures/fake_credentials.json
run: |
make unit
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "${{ vars.PYTHON_VERSION }}"
- uses: eifinger/setup-rye@v3
id: setup-rye
- name: Pin python-version ${{ vars.PYTHON_VERSION }}
run: rye pin ${{ vars.PYTHON_VERSION }}
- name: Install dependencies
run: |
make install
- name: Audit for CVEs
run: |
make audit
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker-practice/actions-setup-docker@master # TODO Is it the best GitHub Action for Docker builds?
- name: Build Docker image
run: |
make docker_build
- name: Confirm the image runs as expected
run: |
docker run slo-generator:latest