This repo contains [OCR3 plugins][ocr3] for CCIP. See the documentation for more.
The version of go is specified in the project's go.mod file. You can install Go from their installation page.
We use golangci-lint as our linting tool. Run the linter like this:
make lint
make test
We use mockery to generate mocks and they're organized in the mockery.yaml file.
make generate
In order to keep the main
branch in working condition, we need to make sure the integration tests
written in the CCIP repo
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.
- Create a PR on chainlink-ccip with the changes you want to make.
- CI will run the integration test in the chainlink repo after applying your changes.
- If the integration test fails, make sure to fix it first before merging your changes into
the
main
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.
- You can specify a particular commit hash on the chainlink repo by adding "core ref: commit sha" to your PR description. See this as an example. If you update the description, manually rerun the workflow. NOTE: Your PR description should not contain single quote (').
- Creating a branch in the CCIP repo and running
- Once your chainlink-ccip PR is approved, merge it.
- Go back to your chainlink PR and bump the chainlink-ccip version to the latest main.
- Once the integration test passes, merge your chainlink PR into
develop
.