Skip to content

feat(library-solidity): update fromExternal to facilitate smart accou… #342

feat(library-solidity): update fromExternal to facilitate smart accou…

feat(library-solidity): update fromExternal to facilitate smart accou… #342

name: test-suite-orchestrate-e2e-tests
on:
pull_request:
branches:
- main
permissions: {}
concurrency:
group: test-suite-orchestrate-e2e-tests-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
coprocessor-docker-build:
if: startsWith(github.head_ref, 'mergify/merge-queue/')
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 }}
CGR_USERNAME: ${{ secrets.CGR_USERNAME }}
CGR_PASSWORD: ${{ secrets.CGR_PASSWORD }}
gateway-contracts-docker-build:
if: startsWith(github.head_ref, 'mergify/merge-queue/')
uses: ./.github/workflows/gateway-contracts-docker-build.yml
permissions: *docker_permissions
secrets: *docker_secrets
host-contracts-docker-build:
if: startsWith(github.head_ref, 'mergify/merge-queue/')
uses: ./.github/workflows/host-contracts-docker-build.yml
permissions: *docker_permissions
secrets: *docker_secrets
kms-connector-docker-build:
if: startsWith(github.head_ref, 'mergify/merge-queue/')
uses: ./.github/workflows/kms-connector-docker-build.yml
permissions: *docker_permissions
secrets: *docker_secrets
test-suite-docker-build:
if: startsWith(github.head_ref, 'mergify/merge-queue/')
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:
COMMIT_HASH: ${{ github.event.pull_request.head.sha || github.sha }}
DOCKER_BUILD_RESULTS: ${{ toJSON(needs) }}
runs-on: ubuntu-latest
outputs:
coprocessor: ${{ steps.create-e2e-tests-input.outputs.coprocessor }}
connector: ${{ steps.create-e2e-tests-input.outputs.connector }}
gateway: ${{ steps.create-e2e-tests-input.outputs.gateway }}
host: ${{ steps.create-e2e-tests-input.outputs.host }}
test-suite: ${{ steps.create-e2e-tests-input.outputs.test-suite }}
steps:
- id: create-e2e-tests-input
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v0.8.0
with:
script: |
const commitHash = process.env.COMMIT_HASH;
console.log(`Commit hash: ${commitHash}`)
console.log(`Docker build results: ${process.env.DOCKER_BUILD_RESULTS}`)
const dockerBuildResults = JSON.parse(process.env.DOCKER_BUILD_RESULTS);
function getImageTagIfBuilt(key, build_result) {
let imageTag = dockerBuildResults[key].outputs[build_result] === 'success' ? commitHash : '';
console.log(`Assigning image tag '${imageTag}' for ${key}`);
return imageTag;
}
const coprocessor = [
getImageTagIfBuilt('coprocessor-docker-build', 'db_migration_build_result'),
getImageTagIfBuilt('coprocessor-docker-build', 'gw_listener_build_result'),
getImageTagIfBuilt('coprocessor-docker-build', 'host_listener_build_result'),
getImageTagIfBuilt('coprocessor-docker-build', 'sns_worker_build_result'),
getImageTagIfBuilt('coprocessor-docker-build', 'tfhe_worker_build_result'),
getImageTagIfBuilt('coprocessor-docker-build', 'tx_sender_build_result'),
getImageTagIfBuilt('coprocessor-docker-build', 'zkproof_worker_build_result'),
];
const connector = [
getImageTagIfBuilt('kms-connector-docker-build', 'db_migration_build_result'),
getImageTagIfBuilt('kms-connector-docker-build', 'gw_listener_build_result'),
getImageTagIfBuilt('kms-connector-docker-build', 'kms_worker_build_result'),
getImageTagIfBuilt('kms-connector-docker-build', 'tx_sender_build_result'),
];
core.setOutput('coprocessor', coprocessor);
core.setOutput('gateway', getImageTagIfBuilt('gateway-contracts-docker-build', 'build_result'));
core.setOutput('host', getImageTagIfBuilt('host-contracts-docker-build', 'build_result'));
core.setOutput('connector', connector);
core.setOutput('test-suite', getImageTagIfBuilt('test-suite-docker-build', 'build_result'));
run-e2e-tests:
needs: [create-e2e-tests-input]
uses:
./.github/workflows/test-suite-e2e-tests-mq.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: ${{ needs.create-e2e-tests-input.outputs.coprocessor }}
gateway: ${{ needs.create-e2e-tests-input.outputs.gateway }}
host: ${{ needs.create-e2e-tests-input.outputs.host }}
connector: ${{ needs.create-e2e-tests-input.outputs.connector }}
test-suite: ${{ needs.create-e2e-tests-input.outputs.test-suite }}