name: CI on: push: branches: [main, develop] pull_request: branches: [main] env: UV_VERSION: "0.8.0" PYTHON_VERSION: "3.13" jobs: lint: runs-on: docker container: image: python:3.13-slim steps: - uses: actions/checkout@v4 - name: Install uv run: | pip install -q uv==${{ env.UV_VERSION }} - name: Install dependencies run: | uv pip install --system -e .[dev] - name: Run ruff format check run: | ruff format --check . - name: Run ruff lint run: | ruff check . typecheck: runs-on: docker container: image: python:3.13-slim steps: - uses: actions/checkout@v4 - name: Install uv run: | pip install -q uv==${{ env.UV_VERSION }} - name: Install dependencies run: | uv pip install --system -e .[dev] - name: Run pyright run: | pyright behave: runs-on: docker strategy: matrix: python-version: ["3.11", "3.12", "3.13"] container: image: python:${{ matrix.python-version }}-slim steps: - uses: actions/checkout@v4 - name: Install uv run: | pip install -q uv==${{ env.UV_VERSION }} - name: Install dependencies run: | uv pip install --system -e .[dev] - name: Run behaviour tests run: | behave -q build: runs-on: docker container: image: python:3.13-slim steps: - uses: actions/checkout@v4 - name: Install uv run: | pip install -q uv==${{ env.UV_VERSION }} - name: Build wheel run: | uv pip install --system build python -m build --wheel - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: dist path: dist/ docker: needs: [lint, typecheck, behave] runs-on: docker steps: - uses: actions/checkout@v4 - name: Build Docker image run: | docker build -t boilerplate:test . - name: Test Docker image run: | docker run --rm boilerplate:test --version helm: needs: [lint, typecheck, behave] runs-on: docker container: image: alpine/helm:latest steps: - uses: actions/checkout@v4 - name: Lint Helm chart run: | helm lint k8s/ - name: Template Helm chart run: | helm template test k8s/