chore(common): update code owners #6106
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: test-suite-e2e-tests | |
| on: | |
| pull_request: | |
| types: | |
| - opened | |
| - synchronize | |
| - reopened | |
| - labeled | |
| - unlabeled | |
| workflow_dispatch: | |
| inputs: &workflow_inputs | |
| orchestrated: | |
| description: "Run from the orchestrated image-validation path." | |
| default: false | |
| type: boolean | |
| build: | |
| description: "Build repo-owned images from the checked out branch on the runner" | |
| default: true | |
| type: boolean | |
| coprocessor-db-migration-version: | |
| description: "Coprocessor DB Migration Image Version" | |
| default: "" | |
| type: string | |
| coprocessor-host-listener-version: | |
| description: "Coprocessor Host Listener Image Version" | |
| default: "" | |
| type: string | |
| coprocessor-gw-listener-version: | |
| description: "Coprocessor Gateway Listener Image Version" | |
| default: "" | |
| type: string | |
| coprocessor-tx-sender-version: | |
| description: "Coprocessor Transaction Sender Image Version" | |
| default: "" | |
| type: string | |
| coprocessor-tfhe-worker-version: | |
| description: "Coprocessor TFHE Worker Image Version" | |
| default: "" | |
| type: string | |
| coprocessor-sns-worker-version: | |
| description: "Coprocessor SNS Worker Image Version" | |
| default: "" | |
| type: string | |
| coprocessor-zkproof-worker-version: | |
| description: "Coprocessor ZKProof Worker Image Version" | |
| default: "" | |
| type: string | |
| gateway-version: | |
| description: "Gateway version" | |
| default: "" | |
| type: string | |
| host-version: | |
| description: "Host version" | |
| default: "" | |
| type: string | |
| connector-db-migration-version: | |
| description: "KMS Connector DB Migration Image Version" | |
| default: "" | |
| type: string | |
| connector-gw-listener-version: | |
| description: "KMS Connector Gateway Listener Image Version" | |
| default: "" | |
| type: string | |
| connector-kms-worker-version: | |
| description: "KMS Connector KMS Worker Image Version" | |
| default: "" | |
| type: string | |
| connector-tx-sender-version: | |
| description: "KMS Connector Transaction Sender Image Version" | |
| default: "" | |
| type: string | |
| test-suite-version: | |
| description: "Test suite version" | |
| default: "" | |
| type: string | |
| relayer-migrate-version: | |
| description: "Relayer migrate version" | |
| default: "" | |
| type: string | |
| relayer-version: | |
| description: "Relayer version" | |
| default: "" | |
| type: string | |
| lock-artifact-name: | |
| description: "Uploaded lock artifact name used to freeze the baseline bundle" | |
| default: "" | |
| type: string | |
| kms-core-version: | |
| description: "KMS Core version" | |
| default: "" | |
| type: string | |
| scenario: | |
| description: "Deployment scenario (e.g. two-of-two, two-of-two-multi-chain)" | |
| default: "two-of-two" | |
| type: string | |
| workflow_call: | |
| secrets: | |
| GHCR_READ_TOKEN: | |
| required: true | |
| CGR_USERNAME: | |
| required: true | |
| CGR_PASSWORD: | |
| required: true | |
| inputs: *workflow_inputs | |
| permissions: {} | |
| # Cancel stale PR runs on new pushes while keeping manual dispatches independent. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || github.ref }}-${{ github.event_name == 'workflow_dispatch' && github.run_id || 'auto' }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' || github.ref != 'refs/heads/main' }} | |
| jobs: | |
| fhevm-e2e-test: | |
| # Run on manual/reusable invocations. For direct PRs, require the `e2e` label. | |
| if: ${{ github.event_name != 'pull_request' || inputs.orchestrated || (github.event.pull_request.head.repo.full_name == github.repository && !startsWith(github.head_ref, 'mergify/merge-queue/') && contains(github.event.pull_request.labels.*.name, 'e2e')) }} | |
| permissions: | |
| contents: 'read' # Required to checkout repository code | |
| id-token: 'write' # Required for OIDC authentication | |
| packages: 'read' # Required to read GitHub packages/container registry | |
| env: | |
| GH_TOKEN: ${{ secrets.GHCR_READ_TOKEN || github.token }} | |
| BUILD: ${{ inputs.orchestrated && 'false' || github.event_name == 'pull_request' && 'true' || inputs.build && 'true' || 'false' }} | |
| COPROCESSOR_DB_MIGRATION_VERSION: ${{ inputs.coprocessor-db-migration-version }} | |
| COPROCESSOR_HOST_LISTENER_VERSION: ${{ inputs.coprocessor-host-listener-version }} | |
| COPROCESSOR_GW_LISTENER_VERSION: ${{ inputs.coprocessor-gw-listener-version }} | |
| COPROCESSOR_TX_SENDER_VERSION: ${{ inputs.coprocessor-tx-sender-version }} | |
| COPROCESSOR_TFHE_WORKER_VERSION: ${{ inputs.coprocessor-tfhe-worker-version }} | |
| COPROCESSOR_SNS_WORKER_VERSION: ${{ inputs.coprocessor-sns-worker-version }} | |
| COPROCESSOR_ZKPROOF_WORKER_VERSION: ${{ inputs.coprocessor-zkproof-worker-version }} | |
| GATEWAY_VERSION: ${{ inputs.gateway-version }} | |
| HOST_VERSION: ${{ inputs.host-version }} | |
| CONNECTOR_DB_MIGRATION_VERSION: ${{ inputs.connector-db-migration-version }} | |
| CONNECTOR_GW_LISTENER_VERSION: ${{ inputs.connector-gw-listener-version }} | |
| CONNECTOR_KMS_WORKER_VERSION: ${{ inputs.connector-kms-worker-version }} | |
| CONNECTOR_TX_SENDER_VERSION: ${{ inputs.connector-tx-sender-version }} | |
| TEST_SUITE_VERSION: ${{ inputs.test-suite-version }} | |
| RELAYER_MIGRATE_VERSION: ${{ inputs.relayer-migrate-version }} | |
| RELAYER_VERSION: ${{ inputs.relayer-version }} | |
| CORE_VERSION: ${{ inputs.kms-core-version }} | |
| SCENARIO: ${{ inputs.scenario || 'two-of-two' }} | |
| runs-on: large_ubuntu_32 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| persist-credentials: 'false' | |
| fetch-depth: 0 | |
| - name: Setup Docker | |
| uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2.1.3 | |
| - name: Install foundry | |
| uses: foundry-rs/foundry-toolchain@82dee4ba654bd2146511f85f0d013af94670c4de # v1.4.0 | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GHCR_READ_TOKEN }} | |
| - name: Login to Chainguard Registry | |
| uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 | |
| with: | |
| registry: cgr.dev | |
| username: ${{ secrets.CGR_USERNAME }} | |
| password: ${{ secrets.CGR_PASSWORD }} | |
| - name: Install CLI deps | |
| working-directory: test-suite/fhevm | |
| run: bun install --frozen-lockfile | |
| - name: Install GitHub CLI | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y gh | |
| - name: Typecheck CLI | |
| working-directory: test-suite/fhevm | |
| run: bun run check | |
| - name: Unit test CLI | |
| working-directory: test-suite/fhevm | |
| run: bun test src | |
| - name: Compat smoke | |
| working-directory: test-suite/fhevm | |
| run: bun run compat-smoke | |
| - name: Download frozen baseline lock | |
| if: ${{ inputs.lock-artifact-name != '' }} | |
| uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
| with: | |
| name: ${{ inputs.lock-artifact-name }} | |
| path: ${{ runner.temp }}/baseline-lock | |
| - name: Resolve frozen lock path | |
| if: ${{ inputs.lock-artifact-name != '' }} | |
| run: | | |
| set -euo pipefail | |
| lock_file="$(find "${RUNNER_TEMP}/baseline-lock" -maxdepth 1 -name '*.json' -print -quit)" | |
| if [ -z "$lock_file" ]; then | |
| echo "Could not locate downloaded baseline lock artifact" >&2 | |
| exit 1 | |
| fi | |
| echo "LOCK_FILE=$lock_file" >> "$GITHUB_ENV" | |
| - name: Resolve latest-main lock once | |
| if: ${{ inputs.lock-artifact-name == '' && !inputs.orchestrated }} | |
| working-directory: test-suite/fhevm | |
| run: | | |
| lock_file="$(./fhevm-cli resolve --target latest-main | tail -n1)" | |
| if [ ! -f "$lock_file" ]; then | |
| echo "Could not locate resolved lock file: $lock_file" >&2 | |
| exit 1 | |
| fi | |
| echo "LOCK_FILE=$lock_file" >> "$GITHUB_ENV" | |
| - name: Resolve stack plan and display effective component versions | |
| working-directory: test-suite/fhevm | |
| run: | | |
| args=(--scenario "$SCENARIO") | |
| if [ -n "${LOCK_FILE:-}" ]; then | |
| args+=(--lock-file "$LOCK_FILE") | |
| else | |
| args+=(--target latest-main) | |
| fi | |
| if [ "$BUILD" = "true" ]; then | |
| args+=(--build) | |
| fi | |
| ./fhevm-cli up "${args[@]}" --dry-run | |
| - name: Boot fhevm Stack | |
| working-directory: test-suite/fhevm | |
| run: | | |
| args=(--scenario "$SCENARIO") | |
| if [ -n "${LOCK_FILE:-}" ]; then | |
| args+=(--lock-file "$LOCK_FILE") | |
| else | |
| args+=(--target latest-main) | |
| fi | |
| if [ "$BUILD" = "true" ]; then | |
| args+=(--build) | |
| fi | |
| ./fhevm-cli up "${args[@]}" | |
| - name: Standard e2e suite | |
| working-directory: test-suite/fhevm | |
| run: | | |
| ./fhevm-cli test standard | |
| - name: Host listener poller test | |
| working-directory: test-suite/fhevm | |
| run: | | |
| docker stop coprocessor-host-listener | |
| ./fhevm-cli test erc20 | |
| docker start coprocessor-host-listener | |
| - name: Show logs | |
| working-directory: test-suite/fhevm | |
| if: always() | |
| run: | | |
| snapshot_logs() { | |
| local group="$1" | |
| local container="$2" | |
| local filter="${3:-}" | |
| echo "::group::${group}" | |
| if [ -n "$filter" ]; then | |
| docker logs --tail 120 "${container}" 2>&1 | grep -v "$filter" || true | |
| else | |
| docker logs --tail 120 "${container}" 2>&1 || true | |
| fi | |
| echo "::endgroup::" | |
| } | |
| snapshot_logs "Relayer Logs" fhevm-relayer | |
| snapshot_logs "SNS Worker Logs" coprocessor-sns-worker "Selected 0 rows to process" | |
| snapshot_logs "Transaction Sender Logs (filtered)" coprocessor-transaction-sender "Selected 0 rows to process" | |
| snapshot_logs "Host Listener" coprocessor-host-listener | |
| snapshot_logs "Gateway Listener" coprocessor-gw-listener | |
| snapshot_logs "ZKProof Worker" coprocessor-zkproof-worker | |
| snapshot_logs "TFHE Worker" coprocessor-tfhe-worker | |
| snapshot_logs "Coprocessor 2 - Host Listener" coprocessor1-host-listener | |
| snapshot_logs "Coprocessor 2 - Gateway Listener" coprocessor1-gw-listener | |
| snapshot_logs "Coprocessor 2 - SNS Worker" coprocessor1-sns-worker "Selected 0 rows to process" | |
| snapshot_logs "Coprocessor 2 - Transaction Sender (filtered)" coprocessor1-transaction-sender "Selected 0 rows to process" | |
| snapshot_logs "Coprocessor 2 - ZKProof Worker" coprocessor1-zkproof-worker | |
| snapshot_logs "Coprocessor 2 - TFHE Worker" coprocessor1-tfhe-worker | |
| - name: Cleanup | |
| working-directory: test-suite/fhevm | |
| if: always() | |
| run: | | |
| ./fhevm-cli clean |