feat(integrations): add WorkBuddy integration #312
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:3.96.0 | |
| 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 | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v10.0.0 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| - 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@v7 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v10.0.0 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| - name: Run deterministic 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() | |
| continue-on-error: true | |
| env: | |
| EVIDENCE_PATH: ${{ github.workspace }}/.powercontext-e2e/${{ matrix.database }}/acceptance | |
| run: | | |
| test -d "${EVIDENCE_PATH}" | |
| if ! find "${EVIDENCE_PATH}" -type f -print -quit | grep -q .; then | |
| echo "No replay evidence was produced." >&2 | |
| exit 1 | |
| fi | |
| docker run --rm \ | |
| --volume "${EVIDENCE_PATH}:/evidence:ro" \ | |
| "${TRUFFLEHOG_IMAGE}" \ | |
| filesystem /evidence \ | |
| --no-verification \ | |
| --results=verified,unknown,unverified \ | |
| --fail \ | |
| --fail-on-scan-errors \ | |
| --no-update \ | |
| --json > "${RUNNER_TEMP}/trufflehog-acceptance-${{ matrix.database }}.jsonl" | |
| - name: Report suppressed replay evidence | |
| if: always() && steps.evidence_scan.outcome != 'success' | |
| run: echo "::warning::Replay evidence was missing or secret scanning did not complete cleanly." | |
| - name: Upload replay evidence | |
| if: always() && steps.evidence_scan.outcome == 'success' | |
| uses: actions/upload-artifact@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 |