Conversation
…er nightly legacy tests from Docker Build instead of fixed schedule
|
✅ No conflicts with other open PRs targeting |
There was a problem hiding this comment.
Pull request overview
Risk Rating: HIGH (changes to CI/CD workflows that gate releases and nightly testing)
This PR updates GitHub Actions workflows to run legacy system tests and CRE system/regression tests based on newly published Chainlink images (and shifts “nightly” execution to be driven by Docker Build / build-publish workflows rather than a fixed cron in the system-tests workflow itself).
Changes:
- Convert
(Nightly) System Teststo be reusable (workflow_call) / parameterized, and add logic to resolve the Chainlink image reference from inputs. - Update integration workflows to pass the new
chainlink_image_repoinput name to CRE reusable workflows. - Trigger legacy + CRE tests from image build/publish workflows (docker-build, build-publish) and enable calling integration-in-memory tests via
workflow_call.
Scrupulous human review areas:
- The new “Resolve Chainlink image” bash logic in
system-tests-nightly.yml,cre-system-tests.yaml, andcre-regression-system-tests.yaml(input validation + image ref construction). - The new post-build test triggers in
build-publish.ymlanddocker-build.yml(ensuring intended event coverage, permissions, and failure behavior).
Reviewer recommendations (per CODEOWNERS):
@smartcontractkit/devex-cicd(explicit owner for.github/workflows/build-publish.yml, and owner for/.github/**)@smartcontractkit/devex-toolingand/or@smartcontractkit/core(owners for/.github/**)
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/system-tests-nightly.yml | Makes system tests reusable/parameterized and adds Chainlink image resolution logic. |
| .github/workflows/integration-tests.yml | Updates CRE reusable workflow input name from ecr_name to chainlink_image_repo. |
| .github/workflows/integration-in-memory-tests.yml | Adds workflow_call input and allows execution when called as a reusable workflow. |
| .github/workflows/docker-build.yml | Calls system tests workflow after image build on schedule/dispatch. |
| .github/workflows/cre-system-tests.yaml | Adds new image inputs and resolves Chainlink image before running CRE system tests. |
| .github/workflows/cre-regression-system-tests.yaml | Adds new image inputs and resolves Chainlink image before running CRE regression tests. |
| .github/workflows/build-publish.yml | Triggers CRE regression, legacy system tests, and CCIP in-memory tests after publish. |
816a8f3 to
ba801c1
Compare
0300acb to
c1a9994
Compare
c1a9994 to
484efe9
Compare
619e3f0 to
a314c58
Compare
a314c58 to
8548103
Compare
|
| description: "The version of Chainlink repository to use for the tests." | ||
| default: "develop" | ||
| description: "The version of Chainlink repository to use for the tests. If empty, defaults to github.sha." | ||
| default: "" |
There was a problem hiding this comment.
Shouldn't this have a ${{ github.sha }}?
| required: true | ||
| type: string | ||
| description: "The version of Chainlink repository to use for the tests." | ||
| default: "develop" |
There was a problem hiding this comment.
Why does the workflow_call use develop but the workflow_dispatch use ${{ github.sha }}?
|
|
||
| - name: Authenticate to ECR (public) | ||
| id: login-ecr-public | ||
| uses: aws-actions/amazon-ecr-login@062b18b96a7aff071d4dc91bc00c4c1a7945b076 # v2.0.1 |
There was a problem hiding this comment.
Update this to:
@183a1442edf41672e66566b7fc560e297a290896 # v2.1.1
| @@ -0,0 +1,40 @@ | |||
| #!/usr/bin/env bash | |||
| set -euo pipefail | |||
There was a problem hiding this comment.
Brief header comment would be nice
# Resolves the Chainlink Docker image to use based on environment variables.
# Priority:
# 1. If CHAINLINK_FULL_IMAGE is set, use it directly (must include registry and tag/digest).
# 2. Otherwise, construct the image from:
# - Repository: CHAINLINK_IMAGE_REPO (default: "chainlink")
# - Tag: CHAINLINK_IMAGE_TAG or fallback to CHAINLINK_VERSION
# - Registry: AWS ECR using AWS_ACCOUNT_NUMBER and AWS_REGION
# Enforces mutual exclusivity between FULL_IMAGE and repo/tag inputs, and validates required fields.
| # Core release tests | ||
| # Smoke & regression tests | ||
| run-cre-system-tests: | ||
| name: Run CRE System Tests |
There was a problem hiding this comment.
Is there a requirement to having these inline? This seems fine for now, but I think it would make sense to have a post-build-publish.yml workflow that is either called by this one, or is dispatched using a workflow_run: [completed] event (https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#workflow_run)
It would allow us to:
- actually test the post-workflow steps
- stop polluting release workflows with arbtirary testing jobs
This can be done later because it's not particularly easy to pass information between these jobs, so that would need to be figured out.
| @@ -1 +1 @@ | |||
| name: Upgrade Compatibility Test | |||
There was a problem hiding this comment.
From what I can tell, this workflow is not being executed/tested by this PR. It is only run on nightlies at the moment.
IMO it makes sense to update this workflow and the nightly workflow in a separate PR and let it bake to test that it's working before referencing it in our release workflow.
| push: | ||
| tags: | ||
| - "*" |
There was a problem hiding this comment.
This already runs on tag pushes, so if we're adding it to be called from the release pipeline which also runs on tag pushes, it will run twice.
| contents: read | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4 |
| uses: aws-actions/amazon-ecr-login@062b18b96a7aff071d4dc91bc00c4c1a7945b076 # v2.0.1 | ||
| with: | ||
| registries: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }} | ||
| env: | ||
| AWS_REGION: ${{ secrets.QA_AWS_REGION }} | ||
|
|
||
| - name: Authenticate to ECR (public) | ||
| id: login-ecr-public | ||
| uses: aws-actions/amazon-ecr-login@062b18b96a7aff071d4dc91bc00c4c1a7945b076 # v2.0.1 | ||
| with: |
|
will be broken down into more PRs |





Add action to resolve CL image to use with following characteristics:
Tested: