Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/build-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,24 @@ jobs:
AWS_ROLE_GATI_ARN: ${{ secrets.AWS_OIDC_CHAINLINK_READ_ONLY_TOKEN_ISSUER_ROLE_ARN }}
AWS_LAMBDA_GATI_URL: ${{ secrets.AWS_INFRA_RELENG_TOKEN_ISSUER_LAMBDA_URL }}

df1-compat-cluster-upgrade-test:
needs: [docker-core]
uses: ./.github/workflows/devenv-compat.yaml
with:
buildcmd: "just cli"
envcmd: "cl u env.toml,products/ocr2/basic.toml"
testcmd: "cl test ocr2 TestSmoke/rounds"
nodes: "3"
versions-back: "2"
ctf-log-level: "debug"
working-directory: "devenv"
logs-directory: "devenv/tests/ocr2/logs"
secrets:
AWS_OIDC_IAM_ROLE_SDLC_ECR_READONLY_ARN: ${{ secrets.AWS_OIDC_IAM_ROLE_SDLC_ECR_READONLY_ARN }}
FAKE_SERVER_IMAGE: ${{ secrets.FAKE_SERVER_IMAGE }}
REGISTRY_SDLC: ${{ secrets.REGISTRY_SDLC }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

docker-ccip:
needs: [checks]
# No need to build the final image as we promote the last RC to use the final tag
Expand Down
148 changes: 148 additions & 0 deletions .github/workflows/devenv-compat.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
name: OCR2 Upgrade Compatibility Test (Reusable)

on:
workflow_call:
inputs:
buildcmd:
description: "Build command to run"
required: true
type: string
envcmd:
description: "Environment setup command to run"
required: true
type: string
testcmd:
description: "Test command to run"
required: true
type: string
nodes:
description: "Number of nodes for the test"
required: false
default: "3"
type: string
versions-back:
description: "Number of versions to go back for compatibility testing"
required: false
default: "2"
type: string
working-directory:
description: "Working directory for commands"
required: false
default: "devenv"
type: string
logs-directory:
description: "Logs directory"
required: true
type: string
ctf-log-level:
description: "CTF log level"
required: false
default: "info"
type: string
secrets:
AWS_OIDC_IAM_ROLE_SDLC_ECR_READONLY_ARN:
description: "AWS OIDC role ARN for ECR read access"
required: true
FAKE_SERVER_IMAGE:
description: "Fake server image"
required: true
REGISTRY_SDLC:
description: "SDLC registry URL"
required: true
GITHUB_TOKEN:
description: "GitHub token for downloading releases"
required: false
default: ${{ github.token }}

defaults:
run:
working-directory: ${{ inputs.working-directory }}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.sha }}
cancel-in-progress: true

jobs:
compatibility:
permissions:
id-token: write
contents: read
pull-requests: write
runs-on: ubuntu24.04-16cores-64GB # ghv-ignore!

Check failure on line 71 in .github/workflows/devenv-compat.yml

View workflow job for this annotation

GitHub Actions / Validate Workflow Changes

1. new ignore comment found (ignore-comment / error) 2. This Ubuntu runner is 4-8 more expensive than a base Ubuntu runner. Consider using a smaller Ubuntu runner. (runner-ubuntu / ignored)
steps:
- name: Checkout code
uses: actions/checkout@v5
with:
fetch-depth: 0

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1

- name: Install Just
uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff # v3
with:
just-version: "1.40.0"

- name: Configure AWS credentials using OIDC
uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
with:
role-to-assume: ${{ secrets.AWS_OIDC_IAM_ROLE_SDLC_ECR_READONLY_ARN }}
aws-region: us-west-2

- name: Authenticate to ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@062b18b96a7aff071d4dc91bc00c4c1a7945b076 # v2.0.1

- name: Set up Go
uses: actions/setup-go@v6 # v6
with:
cache: true
go-version-file: ${{ inputs.working-directory }}/go.mod
cache-dependency-path: ${{ inputs.working-directory }}/go.sum

- name: Download Go dependencies
run: |
go mod download

- name: Get CTF version from go.mod
shell: bash
working-directory: ${{ inputs.working-directory }}
run: |
CTF_VERSION=$(go list -m -json "github.com/smartcontractkit/chainlink-testing-framework/framework" | jq -r .Version)
echo "CTF_TAG=framework/$CTF_VERSION" >> $GITHUB_ENV

- name: Install CTF binary
shell: bash
working-directory: ${{ inputs.working-directory }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mkdir -p bin
gh release download "${{ env.CTF_TAG }}" --pattern "framework-v*-linux-amd64.tar.gz" --clobber --repo smartcontractkit/chainlink-testing-framework -O ctf.tar.gz
tar -xzf ctf.tar.gz
mv ctf bin/ctf
chmod +x bin/ctf

- name: Run compat test
working-directory: ${{ inputs.working-directory }}
shell: bash
env:
CTF_LOG_LEVEL: ${{ inputs.ctf-log-level }}
FAKE_SERVER_IMAGE: ${{ secrets.FAKE_SERVER_IMAGE }}
REGISTRY: ${{ secrets.REGISTRY_SDLC }}/chainlink
run: |
./bin/ctf compat backward \
--registry $REGISTRY \
--buildcmd "${{ inputs.buildcmd }}" \
--envcmd "${{ inputs.envcmd }}" \
--testcmd "${{ inputs.testcmd }}" \
--nodes ${{ inputs.nodes }} \
--versions-back ${{ inputs.versions-back }}

- name: Upload Logs
if: always()
uses: actions/upload-artifact@v4
with:
name: container-logs-smoke
path: ${{ inputs.logs-directory }}
retention-days: 3
2 changes: 1 addition & 1 deletion devenv/Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ push-fakes registry:

# Rebuild CLI
cli:
pushd cmd/cl > /dev/null && go install -ldflags="-X main.Version=1.0.0" . && popd > /dev/null
cd cmd/cl && go install -ldflags="-X main.Version=1.0.0" . && cd - > /dev/null || exit 1
14 changes: 8 additions & 6 deletions devenv/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ require (
github.com/smartcontractkit/chainlink-evm v0.3.3
github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a
github.com/smartcontractkit/chainlink-protos/job-distributor v0.12.0
github.com/smartcontractkit/chainlink-testing-framework/framework v0.13.10
github.com/smartcontractkit/chainlink-testing-framework/framework v0.14.6
github.com/smartcontractkit/chainlink-testing-framework/framework/components/fake v0.10.1-0.20250711120409-5078050f9db4
github.com/smartcontractkit/chainlink-testing-framework/seth v1.51.5
github.com/smartcontractkit/chainlink-testing-framework/wasp v1.51.2
Expand Down Expand Up @@ -150,7 +150,7 @@ require (
github.com/golang/protobuf v1.5.4 // indirect
github.com/golang/snappy v1.0.0 // indirect
github.com/google/btree v1.1.3 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/gnostic-models v0.6.9 // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/s2a-go v0.1.9 // indirect
Expand Down Expand Up @@ -222,6 +222,7 @@ require (
github.com/moby/docker-image-spec v1.3.1 // indirect
github.com/moby/go-archive v0.1.0 // indirect
github.com/moby/patternmatcher v0.6.0 // indirect
github.com/moby/spdystream v0.5.0 // indirect
github.com/moby/sys/sequential v0.6.0 // indirect
github.com/moby/sys/user v0.4.0 // indirect
github.com/moby/sys/userns v0.1.0 // indirect
Expand All @@ -233,6 +234,7 @@ require (
github.com/mr-tron/base58 v1.2.0 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
github.com/oklog/ulid v1.3.1 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.116.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.116.0 // indirect
Expand Down Expand Up @@ -361,11 +363,11 @@ require (
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/api v0.32.2 // indirect
k8s.io/apimachinery v0.32.2 // indirect
k8s.io/client-go v0.32.2 // indirect
k8s.io/api v0.32.3 // indirect
k8s.io/apimachinery v0.32.3 // indirect
k8s.io/client-go v0.32.3 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect
k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 // indirect
k8s.io/utils v0.0.0-20241104163129-6fe5fd82f078 // indirect
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect
Expand Down
Loading
Loading