Skip to content

Phase 1.3: CI/CD Modernization #141

Phase 1.3: CI/CD Modernization

Phase 1.3: CI/CD Modernization #141

Workflow file for this run

name: main
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
identifiers:
name: Identifiers
# GitHub needs to know where .cicd/workflows/identifiers.yml lives at parse time,
# and submodules aren't included in that context! thus the following does NOT work:
# uses: ./.cicd/workflows/identifiers.yml
# we MUST reference the remote repo directly:
uses: wamp-proto/wamp-cicd/.github/workflows/identifiers.yml@main
# IMPORTANT: we still need .cicd as a Git submodule in the using repo though!
# because e.g. identifiers.yml wants to access scripts/sanitize.sh !
check:
name: Code Quality
needs: identifiers
runs-on: ubuntu-24.04
env:
BASE_REPO: ${{ needs.identifiers.outputs.base_repo }}
BASE_BRANCH: ${{ needs.identifiers.outputs.base_branch }}
PR_NUMBER: ${{ needs.identifiers.outputs.pr_number }}
PR_REPO: ${{ needs.identifiers.outputs.pr_repo }}
PR_BRANCH: ${{ needs.identifiers.outputs.pr_branch }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install uv
uses: astral-sh/setup-uv@v6
- name: Set up Python 3.11
run: uv python install 3.11
- name: Install just
uses: extractions/setup-just@v3
- name: Install ty (Astral type checker)
run: uv tool install ty
- name: Create venv and install dev dependencies
run: |
just create cpy311
just install-dev cpy311
- name: Run code quality checks
run: just check cpy311
test:
name: Test Suite
needs: identifiers
runs-on: ${{ matrix.os }}
env:
BASE_REPO: ${{ needs.identifiers.outputs.base_repo }}
BASE_BRANCH: ${{ needs.identifiers.outputs.base_branch }}
PR_NUMBER: ${{ needs.identifiers.outputs.pr_number }}
PR_REPO: ${{ needs.identifiers.outputs.pr_repo }}
PR_BRANCH: ${{ needs.identifiers.outputs.pr_branch }}
strategy:
matrix:
os: [ubuntu-24.04]
# Note: pypy311 excluded because zlmdb v25.10.1 lacks PyPy wheels on PyPI
env: ['cpy311', 'cpy312', 'cpy313', 'cpy314']
continue-on-error: false
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install uv
uses: astral-sh/setup-uv@v6
- name: Install just
uses: extractions/setup-just@v3
- name: Create venv and install dependencies
run: |
just create ${{ matrix.env }}
just install-dev ${{ matrix.env }}
- name: Run tests
run: just test ${{ matrix.env }}
docs:
name: Documentation
needs: identifiers
runs-on: ubuntu-24.04
env:
BASE_REPO: ${{ needs.identifiers.outputs.base_repo }}
BASE_BRANCH: ${{ needs.identifiers.outputs.base_branch }}
PR_NUMBER: ${{ needs.identifiers.outputs.pr_number }}
PR_REPO: ${{ needs.identifiers.outputs.pr_repo }}
PR_BRANCH: ${{ needs.identifiers.outputs.pr_branch }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install uv
uses: astral-sh/setup-uv@v6
- name: Set up Python 3.11
run: uv python install 3.11
- name: Install just
uses: extractions/setup-just@v3
- name: Create venv and install dependencies
run: |
just create cpy311
just install-dev cpy311
- name: Build documentation
run: just docs cpy311