Skip to main content
EVOKORE// WORKFLOWS / ci.yml
Brutal Honesty Kitworkflow · 76 lines

.github/workflows/ci.yml

CI / automation

View on GitHub →
name: CI

on:
  pull_request:
  push:
    branches:
      - main
      - master
  workflow_dispatch:

permissions:
  contents: read

jobs:
  tests:
    name: Python tests
    runs-on: ubuntu-latest
    timeout-minutes: 20
    strategy:
      fail-fast: false
      matrix:
        python-version:
          - "3.11"
          - "3.12"

    steps:
      - name: Check out repository
        uses: actions/checkout@v4

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}
          cache: pip
          cache-dependency-path: v3.5/requirements.txt

      - name: Install test dependencies
        run: |
          python -m pip install --upgrade pip
          python -m pip install pytest
          python -m pip install -r v3.5/requirements.txt

      - name: Remove generated output state
        run: |
          rm -rf .pytest_cache
          rm -rf v3.2/.pytest_cache v3.3/.pytest_cache v3.5/.pytest_cache
          rm -rf v3.5/out

      - name: Run v3.2 tests
        working-directory: v3.2
        run: python -m pytest tests

      - name: Run v3.3 tests
        working-directory: v3.3
        run: python -m pytest tests

      - name: Run v3.5 focused release checks
        working-directory: v3.5
        run: |
          python -m pytest \
            tests/test_validator_banner_version_stamp.py \
            tests/test_pr_template_merge_snippet.py \
            tests/test_validate_pr_brutal_honesty.py::TestR76R77R78GateSkipLoophole \
            tests/test_v371_loophole_replay.py \
            tests/test_r79_severity_cap.py \
            tests/test_r80_rewrite_scope.py \
            tests/test_check_brutal_honesty_hook.py \
            -v

      - name: Run schema drift validation
        run: |
          python v3.5/scripts/validate_v33_schema_drift.py \
            --architecture-doc v3.5/docs/conventions/brutal-honesty-kit/v3.5-architecture.md \
            --artifact-dir v3.5/docs/conventions/brutal-honesty-kit/v3.3 \
            --v35-artifact-dir v3.5/docs/conventions/brutal-honesty-kit/v3.5