Skip to content

Commit

Permalink
Merge branch 'ccip-develop' into mk/CCIP-3028
Browse files Browse the repository at this point in the history
  • Loading branch information
makramkd authored Aug 20, 2024
2 parents 2eb44a0 + f342f6b commit 64dd935
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 16 deletions.
32 changes: 21 additions & 11 deletions .github/workflows/ccip-integration-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
matrix:
go-version: ['1.22.5']
steps:
- name: Checkout the repo
- 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
Expand All @@ -27,35 +27,45 @@ jobs:
- name: Display Go version
run: go version
- name: Clone CCIP repo
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
with:
repository: smartcontractkit/ccip
ref: ccip-develop
path: ccip
- name: Get the correct commit SHA via GitHub API
id: get_sha
run: |
git clone https://github.com/smartcontractkit/ccip.git
cd ccip
git fetch
git checkout ccip-develop
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 ccip
run: |
cd ccip
go get github.com/smartcontractkit/chainlink-ccip@${{ github.event.pull_request.head.sha }}
cd $GITHUB_WORKSPACE/ccip
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 ccip
cd $GITHUB_WORKSPACE/ccip
go mod download
- name: Build binary
run: |
cd ccip
cd $GITHUB_WORKSPACE/ccip
go build -o ccip.test .
- name: Setup DB
run: |
cd ccip
cd $GITHUB_WORKSPACE/ccip
./ccip.test local db preparetest
env:
CL_DATABASE_URL: ${{ env.DB_URL }}
- name: Run ccip ocr3 integration test
run: |
cd ccip
cd $GITHUB_WORKSPACE/ccip
go test -v -timeout 3m -run "^TestIntegration_OCR3Nodes$" ./core/capabilities/ccip/ccip_integration_tests
EXITCODE=${PIPESTATUS[0]}
if [ $EXITCODE -ne 0 ]; then
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ccip-ocr3-build-lint-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
go-version: ['1.21']
go-version: ['1.22']
defaults:
run:
working-directory: .
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codegen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
go-version: ['1.21']
go-version: ['1.22']
defaults:
run:
working-directory: .
Expand Down
3 changes: 1 addition & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ lint: ensure_go_version
golangci-lint run -c .golangci.yml

ensure_go_version:
@go version | grep -q 'go1.21' || (echo "Please use go1.21" && exit 1)
@go version | grep -q 'go1.22' || (echo "Please use go1.22" && exit 1)

ensure_golangcilint_1_59:
@golangci-lint --version | grep -q '1.59' || (echo "Please use golangci-lint 1.59" && exit 1)

52 changes: 52 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# chainlink-ccip

This is the repo that implements the OCR3 CCIP plugins. This includes the commit and execution plugins.

## Getting Started

### Go Version

This repo uses Go 1.22. You can install Go from their [installation page](https://go.dev/doc/install).

### Running the Linter

We use golangci-lint as our linting tool. Run the linter like this:

```sh
make lint
```

### Running the Unit Tests

```sh
make test
```

### Generating the Mocks

We use mockery to generate mocks and they're organized in the [mockery.yaml](./.mockery.yaml) file.

```sh
make generate
```

## Development Cycle

In order to keep the `ccip-develop` branch in working condition, we need to make sure the integration test
[written in the CCIP repo](https://github.com/smartcontractkit/ccip/blob/03ae3bbed0e6020be5fa9be26d03af21f152d7dc/core/capabilities/ccip/ccip_integration_tests/ocr3_node_test.go#L37)
will pass.

As such, part of CI will run this integration test combined with your latest pushed change.

Follow the steps below to ensure that we don't run into any unexpected breakages.

1. Create a PR on chainlink-ccip with the changes you want to make.
2. CI will run the integration test in the CCIP repo after applying your changes.
3. If the integration test fails, make sure to fix it first before merging your changes into
the `ccip-develop` branch of chainlink-ccip. You can do this by:
- Creating a branch in the CCIP repo and running `go get github.com/smartcontractkit/chainlink-ccip@<your-branch-commit-sha>`.
- Fixing the build/tests.
4. Once your ccip PR is approved, merge it.
5. Go back to your chainlink-ccip PR and re-run the integration test workflow.
6. Once the integration test passes, merge your chainlink-ccip PR into `ccip-develop`, however do not delete the branch on the remote.
7. Create a new PR in ccip that points to the newly merged commit in the `ccip-develop` tree and merge that.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/smartcontractkit/chainlink-ccip

go 1.21.7
go 1.22.5

require (
github.com/deckarep/golang-set/v2 v2.6.0
Expand Down

0 comments on commit 64dd935

Please sign in to comment.