Skip to content

.github/workflows: specify core ref in PR desc #1686

.github/workflows: specify core ref in PR desc

.github/workflows: specify core ref in PR desc #1686

name: "Run CCIP OCR3 Integration Test"
on:
pull_request:
push:
branches:
- 'main'
jobs:
integration-test-ccip-ocr3:
env:
# We explicitly have this env var not be "CL_DATABASE_URL" to avoid having it be used by core related tests
# when they should not be using it, while still allowing us to DRY up the setup
DB_URL: postgresql://postgres:postgres@localhost:5432/chainlink_test?sslmode=disable
runs-on: ubuntu-latest
strategy:
matrix:
go-version: ['1.22.5']
steps:
- name: Checkout the chainlink-ccip repo
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
- name: Setup Go ${{ matrix.go-version }}
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ matrix.go-version }}
- name: Display Go version
run: go version
- name: Fetch latest pull request data
id: fetch_pr_data
uses: actions/github-script@v6
with:
script: |
const pr = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number
});
return pr.data.body;
- name: Get the chainlink commit sha from PR description, if applicable
id: get_chainlink_sha
run: |
if [ "${{ github.event_name }}" == "pull_request" ]; then
comment=$(echo "${{ steps.fetch_pr_data.outputs.result }}" | jq -r .)
echo $comment
core_ref="$(echo "$comment" | grep -oP 'core ref: \K\S+' || true)"
echo "::set-output name=ref::$core_ref"
else
echo "::set-output name=ref::develop"
fi
- name: Clone Chainlink repo
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
with:
repository: smartcontractkit/chainlink
ref: ${{ steps.get_chainlink_sha.outputs.ref }}
path: chainlink
- name: Get the correct chainlink-ccip commit SHA via GitHub API
id: get_sha
run: |
if [ "${{ github.event_name }}" == "pull_request" ]; then
COMMIT_SHA=${{ github.event.pull_request.head.sha }}
else
COMMIT_SHA=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/repos/${{ github.repository }}/commits/${{ github.ref }}" | jq -r .sha)
fi
echo "::set-output name=sha::$COMMIT_SHA"
- name: Update chainlink-ccip dependency in chainlink
run: |
cd $GITHUB_WORKSPACE/chainlink
go get github.com/smartcontractkit/chainlink-ccip@${{ steps.get_sha.outputs.sha }}
make gomodtidy
- name: Setup Postgres
uses: ./.github/actions/setup-postgres
- name: Download Go vendor packages
run: |
cd $GITHUB_WORKSPACE/chainlink
go mod download
cd $GITHUB_WORKSPACE/chainlink/integration-tests
go mod download
- name: Build binary
run: |
cd $GITHUB_WORKSPACE/chainlink
go build -o ccip.test .
- name: Setup DB
run: |
cd $GITHUB_WORKSPACE/chainlink
./ccip.test local db preparetest
env:
CL_DATABASE_URL: ${{ env.DB_URL }}
- name: Run ccip ocr3 initial deploy integration test
run: |
cd $GITHUB_WORKSPACE/chainlink/deployment
go test -v -run '^TestInitialDeploy$' -timeout 6m ./ccip/changeset
EXITCODE=${PIPESTATUS[0]}
if [ $EXITCODE -ne 0 ]; then
echo "Integration test failed"
else
echo "Integration test passed!"
fi
exit $EXITCODE
env:
CL_DATABASE_URL: ${{ env.DB_URL }}
- name: Run ccip ocr3 add chain integration test
run: |
cd $GITHUB_WORKSPACE/chainlink/deployment
go test -v -run '^TestAddChainInbound$' -timeout 6m ./ccip/
EXITCODE=${PIPESTATUS[0]}
if [ $EXITCODE -ne 0 ]; then
echo "Integration test failed"
else
echo "Integration test passed!"
fi
exit $EXITCODE
env:
CL_DATABASE_URL: ${{ env.DB_URL }}