Repository navigation
refactor(evaluation): organize suites with independent commands #1904
Workflow file for this run
This file contains hidden or 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: E2E harness | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| types: [opened, synchronize, reopened, ready_for_review] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| env: | |
| TRUFFLEHOG_IMAGE: ghcr.io/trufflesecurity/trufflehog@sha256:562bc231afa9de3d04de44cfe624252b08207de1fc3cebc5e7ed92bed7f279e4 # v3.97.4 | |
| UV_VERSION: "0.10.12" | |
| concurrency: | |
| group: e2e-harness-${{ github.event.pull_request.number || github.ref }}-${{ github.sha }} | |
| cancel-in-progress: false | |
| jobs: | |
| validate: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| # A lock that reuses cleanly can still describe an unsatisfiable graph, so `uv lock --locked` | |
| # does not catch a dependency declaration that the project version can never satisfy. This job | |
| # checks out with tags because the root version is derived from them, which is what makes that | |
| # class of failure visible. | |
| - name: Verify dependencies resolve from scratch | |
| run: uv lock --upgrade --dry-run | |
| - name: Validate harness and Compose definitions | |
| run: | | |
| make harness-sync | |
| make harness-check | |
| make harness-compose-check | |
| acceptance: | |
| needs: validate | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 40 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| database: [sqlite, oceanbase] | |
| name: Acceptance (${{ matrix.database }}) | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| - name: Run deterministic scenarios | |
| id: acceptance_scenarios | |
| env: | |
| POWERCONTEXT_E2E_DATABASE: ${{ matrix.database }} | |
| POWERCONTEXT_E2E_OUTPUT: ${{ github.workspace }}/.powercontext-e2e/${{ matrix.database }}/acceptance | |
| run: make harness-compose-acceptance | |
| - name: Scan replay evidence | |
| id: evidence_scan | |
| if: always() | |
| env: | |
| DATABASE: ${{ matrix.database }} | |
| DIAGNOSTICS_PATH: ${{ runner.temp }}/powercontext-e2e-diagnostics-${{ matrix.database }} | |
| EVIDENCE_PATH: ${{ github.workspace }}/.powercontext-e2e/${{ matrix.database }}/acceptance | |
| SCENARIO_OUTCOME: ${{ steps.acceptance_scenarios.outcome }} | |
| run: bash scripts/scan_e2e_evidence.sh | |
| - name: Upload sanitized replay diagnostics | |
| if: >- | |
| always() && | |
| (steps.evidence_scan.outcome != 'success' || | |
| steps.acceptance_scenarios.outcome != 'success') | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: e2e-acceptance-diagnostics-${{ matrix.database }}-${{ github.sha }} | |
| path: ${{ runner.temp }}/powercontext-e2e-diagnostics-${{ matrix.database }}/summary.txt | |
| if-no-files-found: error | |
| retention-days: 14 | |
| - name: Upload replay evidence | |
| if: always() && steps.evidence_scan.outcome == 'success' | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: e2e-acceptance-${{ matrix.database }}-${{ github.sha }} | |
| path: .powercontext-e2e/${{ matrix.database }}/acceptance | |
| include-hidden-files: true | |
| if-no-files-found: error | |
| retention-days: 14 | |
| - name: Stop harness environment | |
| if: always() | |
| env: | |
| POWERCONTEXT_E2E_DATABASE: ${{ matrix.database }} | |
| run: make harness-compose-down |