merge queue: embarking main (8f6b016), #2079 and #2083 together #2058
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-orchestrate-e2e-tests | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| - release/* | |
| permissions: {} | |
| concurrency: | |
| group: test-suite-orchestrate-e2e-tests-${{ github.ref }} | |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
| jobs: | |
| coprocessor-docker-build: | |
| if: &build-trigger-condition | | |
| startsWith(github.head_ref, 'mergify/merge-queue/') || startsWith(github.base_ref, 'release/') | |
| uses: ./.github/workflows/coprocessor-docker-build.yml | |
| permissions: &docker_permissions | |
| actions: 'read' # Required to read workflow run information | |
| contents: 'read' # Required to checkout repository code | |
| pull-requests: 'read' # Required to read pull request information | |
| attestations: 'write' # Required to create build attestations | |
| packages: 'write' # Required to publish Docker images | |
| id-token: 'write' # Required for OIDC authentication | |
| secrets: &docker_secrets | |
| AWS_ACCESS_KEY_S3_USER: ${{ secrets.AWS_ACCESS_KEY_S3_USER }} | |
| AWS_SECRET_KEY_S3_USER: ${{ secrets.AWS_SECRET_KEY_S3_USER }} | |
| BLOCKCHAIN_ACTIONS_TOKEN: ${{ secrets.BLOCKCHAIN_ACTIONS_TOKEN }} | |
| GHCR_READ_TOKEN: ${{ secrets.GHCR_READ_TOKEN }} | |
| CGR_USERNAME: ${{ secrets.CGR_USERNAME }} | |
| CGR_PASSWORD: ${{ secrets.CGR_PASSWORD }} | |
| gateway-contracts-docker-build: | |
| if: *build-trigger-condition | |
| uses: ./.github/workflows/gateway-contracts-docker-build.yml | |
| permissions: *docker_permissions | |
| secrets: *docker_secrets | |
| host-contracts-docker-build: | |
| if: *build-trigger-condition | |
| uses: ./.github/workflows/host-contracts-docker-build.yml | |
| permissions: *docker_permissions | |
| secrets: *docker_secrets | |
| kms-connector-docker-build: | |
| if: *build-trigger-condition | |
| uses: ./.github/workflows/kms-connector-docker-build.yml | |
| permissions: *docker_permissions | |
| secrets: *docker_secrets | |
| test-suite-docker-build: | |
| if: *build-trigger-condition | |
| uses: ./.github/workflows/test-suite-docker-build.yml | |
| permissions: *docker_permissions | |
| secrets: *docker_secrets | |
| create-e2e-tests-input: | |
| name: create-e2e-tests-input | |
| needs: | |
| - coprocessor-docker-build | |
| - gateway-contracts-docker-build | |
| - host-contracts-docker-build | |
| - kms-connector-docker-build | |
| - test-suite-docker-build | |
| if: ${{ success() || failure() }} | |
| env: | |
| PREVIOUS_COMMIT_HASH: ${{ github.event.pull_request.base.sha }} | |
| NEW_COMMIT_HASH: ${{ github.event.pull_request.head.sha }} | |
| DOCKER_BUILD_RESULTS: ${{ toJSON(needs) }} | |
| runs-on: ubuntu-latest | |
| outputs: | |
| coprocessor-db-migration-version: ${{ steps.create-e2e-tests-input.outputs.coprocessor-db-migration-version }} | |
| coprocessor-gw-listener-version: ${{ steps.create-e2e-tests-input.outputs.coprocessor-gw-listener-version }} | |
| coprocessor-host-listener-version: ${{ steps.create-e2e-tests-input.outputs.coprocessor-host-listener-version }} | |
| coprocessor-sns-worker-version: ${{ steps.create-e2e-tests-input.outputs.coprocessor-sns-worker-version }} | |
| coprocessor-tfhe-worker-version: ${{ steps.create-e2e-tests-input.outputs.coprocessor-tfhe-worker-version }} | |
| coprocessor-tx-sender-version: ${{ steps.create-e2e-tests-input.outputs.coprocessor-tx-sender-version }} | |
| coprocessor-zkproof-worker-version: ${{ steps.create-e2e-tests-input.outputs.coprocessor-zkproof-worker-version }} | |
| connector-db-migration-version: ${{ steps.create-e2e-tests-input.outputs.connector-db-migration-version }} | |
| connector-gw-listener-version: ${{ steps.create-e2e-tests-input.outputs.connector-gw-listener-version }} | |
| connector-kms-worker-version: ${{ steps.create-e2e-tests-input.outputs.connector-kms-worker-version }} | |
| connector-tx-sender-version: ${{ steps.create-e2e-tests-input.outputs.connector-tx-sender-version }} | |
| gateway-version: ${{ steps.create-e2e-tests-input.outputs.gateway-version }} | |
| host-version: ${{ steps.create-e2e-tests-input.outputs.host-version }} | |
| test-suite-version: ${{ steps.create-e2e-tests-input.outputs.test-suite-version }} | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| persist-credentials: 'false' | |
| - id: create-e2e-tests-input | |
| uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v0.8.0 | |
| with: | |
| script: | | |
| const previousCommitHash = process.env.PREVIOUS_COMMIT_HASH; | |
| const newCommitHash = process.env.NEW_COMMIT_HASH; | |
| console.log(`Previous commit hash: ${previousCommitHash}`) | |
| console.log(`New commit hash: ${newCommitHash}`) | |
| console.log(`Docker build results: ${process.env.DOCKER_BUILD_RESULTS}`) | |
| const { execSync } = require('child_process'); | |
| const dockerBuildResults = JSON.parse(process.env.DOCKER_BUILD_RESULTS); | |
| function getImageTagIfBuilt(key, build_result) { | |
| let imageCommit = dockerBuildResults[key].outputs[build_result] === 'success' ? newCommitHash : previousCommitHash; | |
| let imageTag; | |
| try { | |
| imageTag = execSync(`git rev-parse --short ${imageCommit}`, { encoding: 'utf8' }).trim(); | |
| } catch (err) { | |
| console.log(`Failed to resolve short hash for ${imageCommit}, falling back to substring`); | |
| imageTag = imageCommit.substring(0, 7); | |
| } | |
| console.log(`Assigning image tag '${imageTag}' for ${key}`); | |
| return imageTag; | |
| } | |
| core.setOutput('coprocessor-db-migration-version', getImageTagIfBuilt('coprocessor-docker-build', 'db_migration_build_result')); | |
| core.setOutput('coprocessor-gw-listener-version', getImageTagIfBuilt('coprocessor-docker-build', 'gw_listener_build_result')); | |
| core.setOutput('coprocessor-host-listener-version', getImageTagIfBuilt('coprocessor-docker-build', 'host_listener_build_result')); | |
| core.setOutput('coprocessor-sns-worker-version', getImageTagIfBuilt('coprocessor-docker-build', 'sns_worker_build_result')); | |
| core.setOutput('coprocessor-tfhe-worker-version', getImageTagIfBuilt('coprocessor-docker-build', 'tfhe_worker_build_result')); | |
| core.setOutput('coprocessor-tx-sender-version', getImageTagIfBuilt('coprocessor-docker-build', 'tx_sender_build_result')); | |
| core.setOutput('coprocessor-zkproof-worker-version', getImageTagIfBuilt('coprocessor-docker-build', 'zkproof_worker_build_result')); | |
| core.setOutput('connector-db-migration-version', getImageTagIfBuilt('kms-connector-docker-build', 'db_migration_build_result')); | |
| core.setOutput('connector-gw-listener-version', getImageTagIfBuilt('kms-connector-docker-build', 'gw_listener_build_result')); | |
| core.setOutput('connector-kms-worker-version', getImageTagIfBuilt('kms-connector-docker-build', 'kms_worker_build_result')); | |
| core.setOutput('connector-tx-sender-version', getImageTagIfBuilt('kms-connector-docker-build', 'tx_sender_build_result')); | |
| core.setOutput('gateway-version', getImageTagIfBuilt('gateway-contracts-docker-build', 'build_result')); | |
| core.setOutput('host-version', getImageTagIfBuilt('host-contracts-docker-build', 'build_result')); | |
| core.setOutput('test-suite-version', getImageTagIfBuilt('test-suite-docker-build', 'build_result')); | |
| run-e2e-tests: | |
| needs: [create-e2e-tests-input] | |
| uses: | |
| ./.github/workflows/test-suite-e2e-tests.yml | |
| permissions: | |
| contents: 'read' # Required to checkout repository code | |
| id-token: 'write' # Required for OIDC authentication | |
| packages: 'read' # Required to read GitHub packages/container registry | |
| secrets: | |
| GHCR_READ_TOKEN: ${{ secrets.GHCR_READ_TOKEN }} | |
| CGR_USERNAME: ${{ secrets.CGR_USERNAME }} | |
| CGR_PASSWORD: ${{ secrets.CGR_PASSWORD }} | |
| with: | |
| coprocessor-db-migration-version: ${{ needs.create-e2e-tests-input.outputs.coprocessor-db-migration-version }} | |
| coprocessor-gw-listener-version: ${{ needs.create-e2e-tests-input.outputs.coprocessor-gw-listener-version }} | |
| coprocessor-host-listener-version: ${{ needs.create-e2e-tests-input.outputs.coprocessor-host-listener-version }} | |
| coprocessor-sns-worker-version: ${{ needs.create-e2e-tests-input.outputs.coprocessor-sns-worker-version }} | |
| coprocessor-tfhe-worker-version: ${{ needs.create-e2e-tests-input.outputs.coprocessor-tfhe-worker-version }} | |
| coprocessor-tx-sender-version: ${{ needs.create-e2e-tests-input.outputs.coprocessor-tx-sender-version }} | |
| coprocessor-zkproof-worker-version: ${{ needs.create-e2e-tests-input.outputs.coprocessor-zkproof-worker-version }} | |
| connector-db-migration-version: ${{ needs.create-e2e-tests-input.outputs.connector-db-migration-version }} | |
| connector-gw-listener-version: ${{ needs.create-e2e-tests-input.outputs.connector-gw-listener-version }} | |
| connector-kms-worker-version: ${{ needs.create-e2e-tests-input.outputs.connector-kms-worker-version }} | |
| connector-tx-sender-version: ${{ needs.create-e2e-tests-input.outputs.connector-tx-sender-version }} | |
| gateway-version: ${{ needs.create-e2e-tests-input.outputs.gateway-version }} | |
| host-version: ${{ needs.create-e2e-tests-input.outputs.host-version }} | |
| test-suite-version: ${{ needs.create-e2e-tests-input.outputs.test-suite-version }} |