Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge upstream 25 sep 2024 #1468

Closed
wants to merge 206 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
206 commits
Select commit Hold shift + click to select a range
d3198a6
chore: update dependabot config yaml (#13949)
momentmaker Jul 29, 2024
bf30e1d
Refactor jira update script to use typescript (#13860)
HenryNguyen5 Jul 29, 2024
7147653
Fix syntax error in workflow (#13952)
chainchad Jul 29, 2024
1eaf5e0
No new finalized Heads Implementation (#13907)
dhaidashenko Jul 30, 2024
c3dc764
[fix] Race in workflow engine (#13879)
cedric-cordenier Jul 30, 2024
3fc7285
fix releases path in notification (#13959)
Tofel Jul 30, 2024
9e8ebc2
[TT-1422] Properly Handles Group Slack Handle (#13950)
kalverra Jul 31, 2024
9e74eee
Port ccip onchain to chainlink (#13941)
RensR Jul 31, 2024
6b3f6e2
update tests Dockerfile to copy only required files (#13961)
anirudhwarrier Jul 31, 2024
c4ffbfb
Initial Impl of SBRV (#13813)
Fletch153 Jul 31, 2024
d591645
[KS-393] Handle nils values (#13945)
cedric-cordenier Jul 31, 2024
afe2b25
add ccip and liq man gethwrappers (#13967)
RensR Jul 31, 2024
24c4826
[TT-1422] Fix Slack Tag (#13971)
kalverra Jul 31, 2024
3de00b7
Build Image for Tags (#13965)
kalverra Jul 31, 2024
15dc74c
BCI-3842 custom timeouts for Hedera (#13876)
dhaidashenko Jul 31, 2024
94aa60d
Updates CTF and removes some replaces (#13980)
kalverra Jul 31, 2024
610a516
[Keystone] Fix init order for Peer Wrapper and Dispatcher (#13976)
bolekk Aug 1, 2024
20dbba8
Add nonce validation after broadcast for Hedera (#13957)
amit-momin Aug 1, 2024
f974754
[TT-1394] add Reth to compatibility pipeline (#13804)
Tofel Aug 1, 2024
1d12fbf
core: add -failing filter to health command (#13989)
jmank88 Aug 1, 2024
3b4c2b5
Bump version and update CHANGELOG fore core v2.15.0 (#13948)
chainchad Aug 1, 2024
5eb95f1
Remove old CRIB remnants (cleanup) (#13912)
chainchad Aug 1, 2024
1b4cb83
align prom (#13995)
jmank88 Aug 1, 2024
0e8f2de
[fix] Check if DefaultConfig is nil before merging (#13988)
cedric-cordenier Aug 1, 2024
4a78286
Nuke unused files (#14010)
HenryNguyen5 Aug 1, 2024
c1bd103
Add L3X Config (#13987)
KodeyThomas Aug 2, 2024
f5e0bd6
Disallow zero address signers + pin Solidity version (#13993)
DeividasK Aug 2, 2024
2a032e8
Update AutoPurge config interface and add header for Scroll API (#13999)
amit-momin Aug 2, 2024
82accff
fix keystone e2e test dispatcher to correctly replicate duplicate reg…
ettec Aug 2, 2024
af7dab6
common/headtracker: improve health error (#13966)
jmank88 Aug 2, 2024
05ef7fd
MERC-6004 Add Mercury v4 schema (#13862)
martin-cll Aug 2, 2024
1ac2902
VRF-1138: Make CTF tests to reuse existing VRF Wrapper (#13854)
iljapavlovs Aug 5, 2024
7ec99ef
changes to support deterministic message hash in the remote target (#…
ettec Aug 5, 2024
d90bb66
common version update to head of develop (#14030)
ettec Aug 5, 2024
8b9f2b6
[BCF - 3339] - Codec and CR hashed topics support (#14016)
ilija42 Aug 6, 2024
55e7c8b
[CCIP-Merge] OCR2 plugins [CCIP-2942] (#14043)
asoliman92 Aug 6, 2024
1d81278
update readme's with information about CL node TOML config (#14028)
Tofel Aug 6, 2024
d963b0a
ks-409 fix the mock trigger to ensure events are sent (#14047)
ettec Aug 6, 2024
d1d0f44
[TT-1262] dump pg on failure (#14029)
Tofel Aug 6, 2024
e014a13
[KS-411] Extra validation for FeedIDs in Streams Codec (#14038)
bolekk Aug 6, 2024
537d2ec
fix data race in syncer/launcher (#14050)
ettec Aug 6, 2024
0a7372c
update solana e2e test build deps (#13978)
aalu1418 Aug 6, 2024
c2c31c0
Set PriceMin to match pip-35 definition (#14014)
Madalosso Aug 6, 2024
ce90bc3
auto: adjust cron contract imports (#13927)
FelixFan1992 Aug 6, 2024
2312827
Add finalizer component to TXM (#13638)
amit-momin Aug 6, 2024
69f7bd6
use services.Config.NewService/Engine (#13851)
jmank88 Aug 6, 2024
4843d84
Update e2e tests definition for CI and automation workflow (#13908)
lukaszcl Aug 7, 2024
7e5d161
bump solana commit (#14062)
aalu1418 Aug 7, 2024
5a1dd1f
Update log trigger default values (#14051)
infiloop2 Aug 7, 2024
e500c1a
chore: update dependabot config gomod (#14063)
momentmaker Aug 7, 2024
215277f
auto-10161: replicate v2_3 to v2_3_zksync (#14035)
FelixFan1992 Aug 7, 2024
477c8ce
enable gomods (#14042)
jmank88 Aug 7, 2024
499a677
add OZ 5.0.2 contracts (#14065)
RyanRHall Aug 7, 2024
6ab3eb5
[CCIP Merge] Capabilities [CCIP-2943] (#14068)
asoliman92 Aug 7, 2024
2ac9d98
auto-11214: migrate more tests to foundry (#13934)
FelixFan1992 Aug 7, 2024
1257d33
Allow retrying failed transmissions (#14017)
DeividasK Aug 8, 2024
40f4bec
Fix write target nil dereferences (#14059)
DeividasK Aug 8, 2024
4f0f780
Add Mantle errors (#14053)
DylanTinianov Aug 8, 2024
fb2918e
[TT-1429] notifying guardian on some failures (#14073)
Tofel Aug 8, 2024
0f166ad
[KS-412] Validate called DON membership in TriggerPublisher (#14040)
bolekk Aug 8, 2024
375e17b
[BCI-3862][chainlink] - Change DSL Block primitive to string instead …
Farber98 Aug 8, 2024
98fc881
Add error mapping for Astar (#13990)
flodesi Aug 8, 2024
e0850a6
BCI-3492 [LogPoller]: Allow withObservedExecAndRowsAffected to report…
reductionista Aug 8, 2024
84630b8
fix: refactor sonarqube scan args (#13875)
erikburt Aug 8, 2024
08638ff
CRIB CI integration (#13924)
skudasov Aug 8, 2024
ebd45ce
RE-2859 Make jira ticket linkage obligatory in PRs with solidity chan…
HenryNguyen5 Aug 8, 2024
3015b53
fix: check dir before using find (#14087)
erikburt Aug 8, 2024
98b9054
Write Chain Target: Validate that signed report metadata matches requ…
DeividasK Aug 9, 2024
4b91691
[TT-1326] Update Solidty Foundry pipeline with Slither (#13986)
Tofel Aug 9, 2024
14dabac
[TT-1421] Adds Dot Graphs to CI Upload (#13946)
kalverra Aug 9, 2024
7a56130
core/scripts/keystone improvements (#14075)
archseer Aug 9, 2024
cefbb09
KS-391: Capabilities registry reentrancy fix (#13970)
cds95 Aug 9, 2024
288257a
multi-chain fixes (#14077)
archseer Aug 9, 2024
349778b
add missing step id to action (#14088)
Tofel Aug 9, 2024
95cb692
[KS-421] Improve logging from remote capabilities (#14058)
bolekk Aug 9, 2024
bd648bd
Custom Astar finality (#14021)
dhaidashenko Aug 9, 2024
c330def
[BCI-3573] - Remove dependence on FinalityDepth in EVM TXM code (#13794)
Farber98 Aug 9, 2024
1fcfd80
[Keystone] Minor fixes (#14091)
bolekk Aug 12, 2024
518cc28
feat: CCIP-2465 enumerableMap for addressToBytes Mapping (#14012)
defistar Aug 12, 2024
2b86088
refactor + support v2.3 benchmark test (#14052)
anirudhwarrier Aug 12, 2024
5d4d996
[fix] Don't initialize the remote dispatcher (#14097)
cedric-cordenier Aug 12, 2024
220ca2a
Turn CRIB persistence test by default (#14101)
skudasov Aug 13, 2024
eb31cf7
speedup keystone e2e tests (#14105)
ettec Aug 13, 2024
1d1af81
fix unhandled already seen tx error for gnosis chiado (#14099)
huangzhen1997 Aug 13, 2024
6a9528d
classify arbitrum sequencer inaccessible error as retryable (#14100)
huangzhen1997 Aug 13, 2024
3399dd6
prevent editing DON accepts workflows field (#14092)
cds95 Aug 14, 2024
8d332fd
[CCIP-2944] Merge CCIP E2E Tests and CI into Core Repo (#14102)
kalverra Aug 14, 2024
83e576f
Add slack alerts for failing crib integrations (#14122)
chainchad Aug 14, 2024
3f0fad6
[BCI-3863] - Use filtered logs in eventBinding GetLatestValue instead…
Farber98 Aug 14, 2024
aa4e981
[KS-426] Remove panic from CapabilityType type (#14095)
cedric-cordenier Aug 14, 2024
5e99bdb
Handle terminally stuck transactions on send (#14127)
amit-momin Aug 15, 2024
e2a8841
refactor: use only goreleaser to build unsigned chainlink images in o…
momentmaker Aug 15, 2024
8fa8c3a
fix: deadlock in balance shutdown (#14125)
bukata-sa Aug 15, 2024
48c0846
[SHIP-2816] Add scroll sepolia network config (#14126)
joaoluisam Aug 15, 2024
a41b353
[CCIP-2611] Report new heads to atlas' OTI (#13647)
bukata-sa Aug 15, 2024
c92a721
Add Db syncing for registry syncer (#13756)
vyzaldysanchez Aug 15, 2024
1b58436
Updates feeds-manager noderpc proto (#14112)
giogam Aug 15, 2024
c3b1f90
[Keystone] Return an error from Launcher on invariant validation (#14…
bolekk Aug 15, 2024
c0c7649
Gates CCIP CI to run only when CCIP files change (#14131)
kalverra Aug 15, 2024
08194be
DEVSVCS-147: link balance monitor updates (#14108)
FelixFan1992 Aug 16, 2024
69a0090
Aptos LOOP setup (#14076)
archseer Aug 16, 2024
2e314cd
Update ZK overflow detection logic (#14132)
amit-momin Aug 16, 2024
69335dc
Expose Confirmed state to ChainWriter (#14138)
silaslenihan Aug 16, 2024
6ef1d6e
(SHIP-2626) added custom error handling for Treasure (#13981)
amaechiokolobi Aug 17, 2024
326c1d4
[TT-1396] [CCIP-2804] Migrates CCIP To testsecrets (#14135)
kalverra Aug 19, 2024
0ceb9b5
Fix test flake on registry syncer (#14148)
vyzaldysanchez Aug 19, 2024
c72afe7
bumping common to a commit on main (#14152)
patrickhuie19 Aug 19, 2024
a937d5c
Separate token price reporting schedule (#14154)
mateusz-sekara Aug 20, 2024
4f5374b
string v prefix from docker tag (#14147)
Tofel Aug 20, 2024
667bde4
Update run-tests action for running E2E tests (#14156)
lukaszcl Aug 20, 2024
5c2da36
allow to select commit SHA used for artifact generation (#14158)
Tofel Aug 20, 2024
6d072dd
[TT-1435] use chatgpt to find new issues in modified Solidity files (…
Tofel Aug 20, 2024
0fd7480
golangci-lint: enable only-new-issues for PRs (#14136)
jmank88 Aug 20, 2024
7fdc0c8
ks-404 validate ids used in transmission schedule (#14116)
ettec Aug 20, 2024
80c60c4
Adds seth chain defaults (#14162)
davidcauchi Aug 20, 2024
910dd8d
[KS-427] Launcher: process DONs in a deterministic order (#14153)
bolekk Aug 20, 2024
aec9d9f
Fixes CCIP Change Detection (#14164)
kalverra Aug 20, 2024
f0d72f7
chore: update goreleaser develop tag mutable (#14167)
momentmaker Aug 20, 2024
32a743b
golangci-lint: revive: exported, var-naming, range-val-address, early…
jmank88 Aug 20, 2024
c6d1d45
use services.Config.NewService/Engine (part 2) (#14117)
jmank88 Aug 20, 2024
b388712
vrf: fix vrfv2 test loading consumer address as coordinator (#14172)
leeyikjiun Aug 21, 2024
1852353
Fix datarace (#14157)
dimriou Aug 21, 2024
4d50117
crib-317 update ctf version (#14176)
gheorghestrimtu Aug 21, 2024
d204c46
CTF tests - increase gas_tip_cap for Polygon Amoy chain (#14178)
iljapavlovs Aug 21, 2024
d7645dd
CCIP-3008 CCIP versioning which is semver compatible (#14177)
mateusz-sekara Aug 21, 2024
0cbad1b
TT-1473 Refactor integration-tests.yml workflow to use run-e2e-tests-…
lukaszcl Aug 21, 2024
ec183b5
Soak Tests - Remove Namespace if fund return is successful (#14155)
anirudhwarrier Aug 21, 2024
831d006
devsvcs-168: fix chain module l1 fee calculation (#14150)
FelixFan1992 Aug 21, 2024
e76463c
Fix: Add hexutil Bytes encoding to batchcall data (#14165)
silaslenihan Aug 21, 2024
fdf9d10
refactor: build-publish-develop-pr workflow to not split (#14187)
momentmaker Aug 21, 2024
ee57b4f
item 4 - topeerid should validate []byte length (#14181)
ettec Aug 21, 2024
5b9d92d
Fix flakey ccipreader_test as per CCIP pr 1337 (#14189)
b-gopalswami Aug 21, 2024
c098805
devsvcs-130: add an optimism module v2 to reduce gas cost to estimate…
FelixFan1992 Aug 21, 2024
633eb41
[CCIP-3072] Info log on missing finalized block (#14179)
bukata-sa Aug 21, 2024
d884838
bump solana (#14188)
aalu1418 Aug 21, 2024
8322953
use explicit block number when checking LINK contract balance (#14186)
Tofel Aug 22, 2024
b563d77
Report all prices from Jobspec (#14185)
mateusz-sekara Aug 22, 2024
a865709
CCIP-2971 Optimize token/gas prices database interactions (#14074)
mateusz-sekara Aug 22, 2024
b9a433b
Create an empty registry if external registry is not connected (#14174)
DeividasK Aug 22, 2024
8d58c69
update test parallel count for automation tests (#14199)
anirudhwarrier Aug 22, 2024
e452ee1
[TT-1492] add step to publish comment with Slither report job summary…
Tofel Aug 22, 2024
2900a1e
Fix for E2E tests nightly workflow (#14200)
lukaszcl Aug 22, 2024
35f68c8
fix(RegisterManager): handle error correctly (#14183)
graham-chainlink Aug 22, 2024
d50feb0
migrate goreleaser to use ~> v2 as default version to use (#14190)
momentmaker Aug 22, 2024
9c240b6
auto-10161: implement without zksync forwarder interface change (#14037)
FelixFan1992 Aug 22, 2024
2521c4b
Use new Havoc lib from CTF (#14201)
skudasov Aug 22, 2024
908e96c
Move long running CCIP tests to nightly tests (#14204)
lukaszcl Aug 22, 2024
621e875
fix: non-zero default period (#14206)
bukata-sa Aug 22, 2024
c98feb2
Changed Optimism L1 Oracle to support Mantle (#14160)
ma33r Aug 22, 2024
8d818ea
Gas limit estimation feature (#14041)
amit-momin Aug 22, 2024
b0e31e0
Improve TXM performance by optimize Confirmer and Finalizer queries t…
huangzhen1997 Aug 23, 2024
e4f346a
Use develop image from sdlc account (#14202)
scheibinger Aug 23, 2024
822c507
[CAPPL] Make copy private so it can't be misused (#14205)
cedric-cordenier Aug 23, 2024
8e1ae31
bump github.com/grafana/pyroscope-go/godeltaprof (#14213)
jmank88 Aug 23, 2024
3465895
Update e2e test workflows (#14210)
lukaszcl Aug 23, 2024
3335b7e
simplify modgraph (#14169)
jmank88 Aug 23, 2024
977c78a
Add reference to capability request in the engine (#14168)
nolag Aug 23, 2024
25d2961
fix: head report chain_id (#14212)
bukata-sa Aug 23, 2024
65998c4
Bump version and update CHANGELOG for core v2.15.0 (#13947)
chainchad Aug 23, 2024
af335c1
Support v0.3 schema report format in LLO (#13780)
samsondav Aug 23, 2024
32a2ccd
KS-398 gas limit on tx meta (#14214)
ettec Aug 23, 2024
6b2fa6f
Add keystone codeowner (#14218)
braddmiller Aug 23, 2024
0352a7d
Update Op Forwarder code owner to Data Feeds Eng (#14222)
austinborn Aug 25, 2024
445dd3c
Add test_secrets_override_key to remaining workflows that use base64T…
lukaszcl Aug 26, 2024
a749e65
Fix flakey test runner (#14226)
cedric-cordenier Aug 26, 2024
3d2efc3
[TT-1505] fix name of step used to generate changesets (#14217)
Tofel Aug 26, 2024
3257b8f
DEVSVCS-138: adding default test config for VRF CTF tests; adding abi…
iljapavlovs Aug 26, 2024
95ae744
Bump NPM and Forge dependencies (#14093)
RensR Aug 26, 2024
5070cf8
use services.Config.NewService/Engine (part 3) (#14170)
jmank88 Aug 26, 2024
9e7406e
core/services/ocr/plugins/llo: fix onchain cache test race (#14232)
jmank88 Aug 26, 2024
c00ac96
Ccip-3076 deployment package (#14209)
AnieeG Aug 26, 2024
0294e1f
Fix RPCClient Deadlock on Unsubscribe and NewHead (#14236)
dhaidashenko Aug 26, 2024
e7d993b
Migrate more e2e test workflows to use the reusable workflow (#14235)
lukaszcl Aug 27, 2024
8cea1b2
Run smoke/ocr2_test.go on develop-plugins by default (#14240)
lukaszcl Aug 27, 2024
3500089
update test to remove logic for zkevm-node (#14143)
anirudhwarrier Aug 27, 2024
f8e2cb2
use Seth from CTF repo (#14233)
Tofel Aug 27, 2024
7a41ae7
Use ERC165Checker in CapabilitiesRegistry (#14231)
DeividasK Aug 27, 2024
bf2b72d
[BCF-3250]: Fix FilterLog error handling in LogPoller (#11654)
reductionista Aug 27, 2024
0f557ae
[SHIP-1877] Bump BSC Mainnet's Default PriceMin to 3 gwei (#13853)
flodesi Aug 27, 2024
f1bc2e7
Set From address for gas limit estimation feature (#14246)
amit-momin Aug 27, 2024
808912d
feat(docker): add observability stack (#14203)
Atrax1 Aug 27, 2024
ca7b958
RE 2877 Jira<->Changeset traceability for solidity changes (#14141)
HenryNguyen5 Aug 27, 2024
c39590e
bump common for sql performance improvements (#14247)
jmank88 Aug 28, 2024
d0d2f30
[BCI-3991] - Remove CR from relayer struct (#14146)
Farber98 Aug 28, 2024
710d48e
switch to CTF WASP package (#14255)
skudasov Aug 28, 2024
567ce22
[CAPPL-6] Formalize trigger API (#14145)
cedric-cordenier Aug 28, 2024
102a09a
Bump version and update CHANGELOG fore core v2.16.0
chainchad Aug 28, 2024
e4ffcf7
Update EstimateGasLimit config name to EstimateLimit (#14297)
amit-momin Sep 3, 2024
fe86959
[Cherry Pick] Update EstimateGasLimit config name to EstimateLimit
chainchad Sep 3, 2024
5dee0ec
fix: goreleaser-build-sign-publish-chainlink workflow (#14139)
momentmaker Aug 28, 2024
0359573
Merge pull request #14323 from smartcontractkit/hotfix/add-keyless-co…
momentmaker Sep 3, 2024
bb48508
core/services/relay/evm: handle error from chainselectors
jmank88 Sep 4, 2024
5eac567
Merge pull request #14337 from smartcontractkit/chain-selector-fix
momentmaker Sep 6, 2024
9e0de20
Fix pruning query
reductionista Sep 17, 2024
10113c5
Add regression testing for pruning bug
reductionista Sep 17, 2024
2b19723
Query exact wasmvm module rather than parsing all (#14425)
HenryNguyen5 Sep 14, 2024
6aa6196
exclude sourcegraph missing dependency (#14446)
skudasov Sep 16, 2024
a0580bc
Merge pull request #14462 from smartcontractkit/hotfix/BCFR-906-logpo…
momentmaker Sep 17, 2024
cbf497a
Merge branch 'release/2.16.0' into hotfix/go-mod-dep
momentmaker Sep 17, 2024
aad7af6
Merge pull request #14466 from smartcontractkit/hotfix/go-mod-dep
momentmaker Sep 18, 2024
546e696
finalize date on changelog for 2.16.0
momentmaker Sep 23, 2024
72a7d23
Merge pull request #14528 from smartcontractkit/chore/update-release-…
momentmaker Sep 23, 2024
8433c71
Merge tag 'v2.16.0' into merge-upstream-25-sep-2024
valerii-kabisov-cll Sep 25, 2024
aeb037c
contracts and geth wrappers
valerii-kabisov-cll Sep 25, 2024
07325fe
restore workflows
valerii-kabisov-cll Sep 26, 2024
d6c914d
Merge branch 'refs/heads/ccip-develop' into merge-upstream-25-sep-2024
valerii-kabisov-cll Sep 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .changeset/bright-rings-knock.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": minor
---

Bump to start the next version
5 changes: 2 additions & 3 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,10 @@ core/scripts/gateway @smartcontractkit/functions

/contracts/src/v0.8/functions @smartcontractkit/functions
/contracts/**/*functions* @smartcontractkit/functions
/contracts/**/*llo-feeds* @smartcontrackit/mercury-team
/contracts/**/*llo-feeds* @smartcontractkit/mercury-team
/contracts/**/*vrf* @smartcontractkit/vrf-team
/contracts/**/*l2ep* @smartcontractkit/bix-ship
# TODO: replace with a team tag when ready
/contracts/**/*keystone* @archseer @bolekk @patrick-dowell
/contracts/**/*keystone* @smartcontractkit/keystone

/contracts/src/v0.8/automation @smartcontractkit/keepers
/contracts/src/v0.8/functions @smartcontractkit/functions
Expand Down
92 changes: 25 additions & 67 deletions .github/actions/build-sign-publish-chainlink/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,23 +51,11 @@ inputs:
description: When set to the string boolean value of "true", the resulting build image will be signed
default: "false"
required: false
cosign-private-key:
description: The private key to be used with cosign to sign the image
required: false
cosign-public-key:
description: The public key to be used with cosign for verification
required: false
cosign-password:
description: The password to decrypt the cosign private key needed to sign the image
required: false
sign-method:
description: Build image will be signed using keypair or keyless methods
default: "keypair"
required: true
verify-signature:
description: When set to the string boolean value of "true", the resulting build image signature will be verified
default: "false"
required: false

outputs:
docker-image-tag:
description: The docker image tag that was built and pushed
Expand All @@ -84,6 +72,8 @@ runs:
# See https://docs.github.com/en/actions/learn-github-actions/workflow-commands-for-github-actions#multiline-strings
run: |
SHARED_IMAGES=${{ inputs.ecr-hostname }}/${{ inputs.ecr-image-name }}
OIDC_ISSUER=https://token.actions.githubusercontent.com
OIDC_IDENTITY=https://github.com/smartcontractkit/chainlink/.github/workflows/build-publish.yml@${{ github.ref }}

SHARED_TAG_LIST=$(cat << EOF
type=ref,event=branch,suffix=${{ inputs.ecr-tag-suffix }}
Expand All @@ -101,6 +91,9 @@ runs:
echo "$SHARED_IMAGES" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV

echo "oidc-issuer=${OIDC_ISSUER}" >> $GITHUB_ENV
echo "oidc-identity=${OIDC_IDENTITY}" >> $GITHUB_ENV

echo "shared-tag-list<<EOF" >> $GITHUB_ENV
echo "$SHARED_TAG_LIST" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
Expand Down Expand Up @@ -171,7 +164,9 @@ runs:
run: |
IMAGES_NAME_RAW=${{ fromJSON(steps.buildpush-root.outputs.metadata)['image.name'] }}
IMAGE_NAME=$(echo "$IMAGES_NAME_RAW" | cut -d"," -f1)
IMAGE_DIGEST=${{ fromJSON(steps.buildpush-root.outputs.metadata)['containerimage.digest'] }}
echo "root_image_name=${IMAGE_NAME}" >> $GITHUB_ENV
echo "root_image_digest=${IMAGE_DIGEST}" >> $GITHUB_ENV

- name: Generate docker metadata for non-root image
id: meta-nonroot
Expand Down Expand Up @@ -217,6 +212,7 @@ runs:
IMAGE_NAME=$(echo "$IMAGES_NAME_RAW" | cut -d"," -f1)
IMAGE_TAG=$(echo "$IMAGES_NAME_RAW" | cut -d":" -f2)
echo "nonroot_image_name=${IMAGE_NAME}" >> $GITHUB_ENV
echo "nonroot_image_digest=${IMAGE_DIGEST}" >> $GITHUB_ENV
echo '### Docker Image' >> $GITHUB_STEP_SUMMARY
echo "Image Name: ${IMAGE_NAME}" >> $GITHUB_STEP_SUMMARY
echo "Image Digest: ${IMAGE_DIGEST}" >> $GITHUB_STEP_SUMMARY
Expand All @@ -239,74 +235,36 @@ runs:

- if: inputs.sign-images == 'true'
name: Install cosign
uses: sigstore/cosign-installer@e1523de7571e31dbe865fd2e80c5c7c23ae71eb4 # v3.4.0
uses: sigstore/cosign-installer@4959ce089c160fddf62f7b42464195ba1a56d382 # v3.6.0
with:
cosign-release: "v1.6.0"
cosign-release: "v2.4.0"

- if: inputs.sign-images == 'true' && inputs.sign-method == 'keypair'
name: Sign the published root Docker image using keypair method
shell: sh
env:
COSIGN_PASSWORD: "${{ inputs.cosign-password }}"
run: |
echo "${{ inputs.cosign-private-key }}" > cosign.key
cosign sign --key cosign.key "${{ env.root_image_name }}"
rm -f cosign.key

- if: inputs.verify-signature == 'true' && inputs.sign-method == 'keypair'
name: Verify the signature of the published root Docker image using keypair
shell: sh
run: |
echo "${{ inputs.cosign-public-key }}" > cosign.key
cosign verify --key cosign.key "${{ env.root_image_name }}"
rm -f cosign.key

- if: inputs.sign-images == 'true' && inputs.sign-method == 'keyless'
# This automatically signs the image with the correct OIDC provider from Github
- if: inputs.sign-images == 'true'
name: Sign the published root Docker image using keyless method
shell: sh
env:
COSIGN_EXPERIMENTAL: 1
run: |
cosign sign "${{ env.root_image_name }}"
cosign sign "${{ env.root_image_name }}" --yes

- if: inputs.verify-signature == 'true' && inputs.sign-method == 'keyless'
- if: inputs.verify-signature == 'true'
name: Verify the signature of the published root Docker image using keyless
shell: sh
env:
COSIGN_EXPERIMENTAL: 1
run: |
cosign verify "${{ env.root_image_name }}"

- if: inputs.sign-images == 'true' && inputs.sign-method == 'keypair'
name: Sign the published non-root Docker image using keypair method
shell: sh
env:
COSIGN_PASSWORD: "${{ inputs.cosign-password }}"
run: |
echo "${{ inputs.cosign-private-key }}" > cosign.key
cosign sign --key cosign.key "${{ env.nonroot_image_name }}"
rm -f cosign.key

- if: inputs.verify-signature == 'true' && inputs.sign-method == 'keypair'
name: Verify the signature of the published non-root Docker image using keypair
shell: sh
run: |
echo "${{ inputs.cosign-public-key }}" > cosign.key
cosign verify --key cosign.key "${{ env.nonroot_image_name }}"
rm -f cosign.key
cosign verify "${{ env.root_image_name }}" \
--certificate-oidc-issuer ${{ env.oidc-issuer }} \
--certificate-identity "${{ env.oidc-identity }}"

- if: inputs.sign-images == 'true' && inputs.sign-method == 'keyless'
# This automatically signs the image with the correct OIDC provider from Github
- if: inputs.sign-images == 'true'
name: Sign the published non-root Docker image using keyless method
shell: sh
env:
COSIGN_EXPERIMENTAL: 1
run: |
cosign sign "${{ env.nonroot_image_name }}"
cosign sign "${{ env.nonroot_image_name }}" --yes

- if: inputs.verify-signature == 'true' && inputs.sign-method == 'keyless'
- if: inputs.verify-signature == 'true'
name: Verify the signature of the published non-root Docker image using keyless
shell: sh
env:
COSIGN_EXPERIMENTAL: 1
run: |
cosign verify "${{ env.nonroot_image_name }}"
cosign verify "${{ env.nonroot_image_name }}" \
--certificate-oidc-issuer ${{ env.oidc-issuer }} \
--certificate-identity "${{ env.oidc-identity }}"
2 changes: 1 addition & 1 deletion .github/actions/golangci-lint/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ runs:
skip-pkg-cache: true
skip-build-cache: true
# only-new-issues is only applicable to PRs, otherwise it is always set to false
only-new-issues: false # disabled for PRs due to unreliability
only-new-issues: true
args: --out-format colored-line-number,checkstyle:golangci-lint-report.xml
working-directory: ${{ inputs.go-directory }}
- name: Print lint report artifact
Expand Down
10 changes: 7 additions & 3 deletions .github/actions/goreleaser-build-sign-publish/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,13 +97,17 @@ Following inputs can be used as `step.with` keys

| Name | Type | Default | Description |
| ---------------------------- | ------ | ------------------ | ----------------------------------------------------------------------- |
| `goreleaser-version` | String | `1.13.1` | `goreleaser` version |
| `zig-version` | String | `0.10.0` | `zig` version |
| `cosign-version` | String | `v1.13.1` | `cosign` version |
| `goreleaser-version` | String | `~> v2` | `goreleaser` version |
| `zig-version` | String | `0.10.1` | `zig` version |
| `cosign-version` | String | `v2.2.2` | `cosign` version |
| `macos-sdk-dir` | String | `MacOSX12.3.sdk` | MacOSX sdk directory |
| `enable-docker-publish` | Bool | `true` | Enable publishing of Docker images / manifests |
| `docker-registry` | String | `localhost:5001` | Docker registry |
| `docker-image-name` | String | `chainlink` | Docker image name |
| `docker-image-tag` | String | `develop` | Docker image tag |
| `enable-goreleaser-snapshot` | Bool | `false` | Enable goreleaser build / release snapshot |
| `enable-goreleaser-split` | Bool | `false` | Enable goreleaser build using split and merge |
| `goreleaser-split-arch` | String | `""` | The arch to build the image with - amd64, arm64 |
| `goreleaser-exec` | String | `goreleaser` | The goreleaser executable, can invoke wrapper script |
| `goreleaser-config` | String | `.goreleaser.yaml` | The goreleaser configuration yaml |
| `enable-cosign` | Bool | `false` | Enable signing of Docker images |
Expand Down
64 changes: 34 additions & 30 deletions .github/actions/goreleaser-build-sign-publish/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ description: A composite action that allows building and publishing signed chain
inputs:
goreleaser-version:
description: The goreleaser version
default: 1.23.0
default: "~> v2"
required: false
goreleaser-key:
description: The goreleaser key
Expand All @@ -14,7 +14,7 @@ inputs:
required: false
cosign-version:
description: The cosign version
default: v2.2.2
default: v2.4.0
required: false
macos-sdk-dir:
description: The macos sdk directory
Expand All @@ -29,10 +29,13 @@ inputs:
description: The docker registry
default: localhost:5001
required: false
# snapshot inputs
enable-goreleaser-snapshot:
description: Enable goreleaser build / release snapshot
default: "false"
docker-image-name:
description: The docker image name
default: chainlink
required: false
docker-image-tag:
description: The docker image tag
default: develop
required: false
# goreleaser inputs
goreleaser-exec:
Expand All @@ -43,27 +46,22 @@ inputs:
description: "The goreleaser configuration yaml"
default: ".goreleaser.yaml"
required: false
# signing inputs
enable-cosign:
description: Enable signing of docker images
enable-goreleaser-snapshot:
description: Enable goreleaser build / release snapshot
default: "false"
required: false
cosign-private-key:
description: The private key to be used with cosign to sign the image
enable-goreleaser-split:
description: Enable goreleaser split and merge builds
default: "false"
required: false
cosign-public-key:
description: The public key to be used with cosign for verification
goreleaser-split-arch:
description: The architecture to split the goreleaser build
required: false
cosign-password:
description: The password to decrypt the cosign private key needed to sign the image
# signing inputs
enable-cosign:
description: Enable signing of docker images
default: "false"
required: false
outputs:
goreleaser-metadata:
description: "Build result metadata"
value: ${{ steps.goreleaser.outputs.metadata }}
goreleaser-artifacts:
description: "Build result artifacts"
value: ${{ steps.goreleaser.outputs.artifacts }}
runs:
using: composite
steps:
Expand All @@ -76,7 +74,7 @@ runs:
with:
go-version-file: "go.mod"
- name: Setup goreleaser
uses: goreleaser/goreleaser-action@7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8 # v5.0.0
uses: goreleaser/goreleaser-action@286f3b13b1b49da4ac219696163fb8c1c93e1200 # v6.0.0
with:
distribution: goreleaser-pro
install-only: true
Expand All @@ -89,27 +87,33 @@ runs:
version: ${{ inputs.zig-version }}
- name: Setup cosign
if: inputs.enable-cosign == 'true'
uses: sigstore/cosign-installer@e1523de7571e31dbe865fd2e80c5c7c23ae71eb4 # v3.4.0
uses: sigstore/cosign-installer@4959ce089c160fddf62f7b42464195ba1a56d382 # v3.6.0
with:
cosign-release: ${{ inputs.cosign-version }}
- name: Login to docker registry
if: inputs.enable-docker-publish == 'true'
uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v3.1.0
with:
registry: ${{ inputs.docker-registry }}
- name: Goreleaser release
id: goreleaser
- name: Set goreleaser split env
if: inputs.enable-goreleaser-split == 'true'
shell: bash
run: |
echo "GOOS=linux" | tee -a $GITHUB_ENV
echo "GOARCH=${{ inputs.goreleaser-split-arch }}" | tee -a $GITHUB_ENV
- name: Run goreleaser release
shell: bash
env:
ENABLE_COSIGN: ${{ inputs.enable-cosign }}
ENABLE_GORELEASER_SNAPSHOT: ${{ inputs.enable-goreleaser-snapshot }}
ENABLE_GORELEASER_SPLIT: ${{ inputs.enable-goreleaser-split }}
ENABLE_DOCKER_PUBLISH: ${{ inputs.enable-docker-publish }}
IMAGE_PREFIX: ${{ inputs.docker-registry }}
IMAGE_NAME: ${{ inputs.docker-image-name }}
IMAGE_TAG: ${{ inputs.docker-image-tag }}
GORELEASER_EXEC: ${{ inputs.goreleaser-exec }}
GORELEASER_CONFIG: ${{ inputs.goreleaser-config }}
COSIGN_PASSWORD: ${{ inputs.cosign-password }}
COSIGN_PUBLIC_KEY: ${{ inputs.cosign-public-key }}
COSIGN_PRIVATE_KEY: ${{ inputs.cosign-private-key }}
GORELEASER_KEY: ${{ inputs.goreleaser-key }}
GITHUB_TOKEN: ${{ github.token }}
MACOS_SDK_DIR: ${{ inputs.macos-sdk-dir }}
run: |
# https://github.com/orgs/community/discussions/24950
Expand Down
38 changes: 22 additions & 16 deletions .github/actions/goreleaser-build-sign-publish/action_utils
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@
set -x
set -euo pipefail

ENABLE_COSIGN=${ENABLE_COSIGN:-false}
ENABLE_GORELEASER_SNAPSHOT=${ENABLE_GORELEASER_SNAPSHOT:-false}
ENABLE_GORELEASER_SPLIT=${ENABLE_GORELEASER_SPLIT:-false}
ENABLE_DOCKER_PUBLISH=${ENABLE_DOCKER_PUBLISH:-false}
COSIGN_PASSWORD=${COSIGN_PASSWORD:-""}
GORELEASER_EXEC=${GORELEASER_EXEC:-goreleaser}
GORELEASER_CONFIG=${GORELEASER_CONFIG:-.goreleaser.yaml}
IMAGE_PREFIX=${IMAGE_PREFIX:-"localhost:5001"}
Expand All @@ -27,8 +26,12 @@ _publish_snapshot_manifests() {
local docker_manifest_extra_args=$DOCKER_MANIFEST_EXTRA_ARGS
local full_sha=$(git rev-parse HEAD)
local images=$(docker images --filter "label=org.opencontainers.image.revision=$full_sha" --format "{{.Repository}}:{{.Tag}}" | sort)
local arches=(amd64 arm64)
local raw_manifest_lists=""
if [[ $ENABLE_GORELEASER_SPLIT == "true" ]]; then
local arches=(${GOARCH:-""})
else
local arches=(amd64 arm64)
fi
for image in $images; do
for arch in "${arches[@]}"; do
image=${image%"-$arch"}
Expand All @@ -51,25 +54,28 @@ _publish_snapshot_manifests() {

# wrapper function to invoke goreleaser release
goreleaser_release() {
if [[ $ENABLE_COSIGN == "true" ]]; then
echo "$COSIGN_PUBLIC_KEY" > cosign.pub
echo "$COSIGN_PRIVATE_KEY" > cosign.key
goreleaser_flags=()

# set goreleaser flags
if [[ $ENABLE_GORELEASER_SNAPSHOT == "true" ]]; then
goreleaser_flags+=("--snapshot")
goreleaser_flags+=("--clean")
fi
if [[ $ENABLE_GORELEASER_SPLIT == "true" ]]; then
goreleaser_flags+=("--split")
fi
flags=$(printf "%s " "${goreleaser_flags[@]}")
flags=$(echo "$flags" | sed 's/ *$//')

if [[ -n $MACOS_SDK_DIR ]]; then
MACOS_SDK_DIR=$(echo "$(cd "$(dirname "$MACOS_SDK_DIR")" || exit; pwd)/$(basename "$MACOS_SDK_DIR")")
fi
if [[ $ENABLE_GORELEASER_SNAPSHOT == "true" ]]; then
$GORELEASER_EXEC release --snapshot --clean --config "$GORELEASER_CONFIG" "$@"
if [[ $ENABLE_DOCKER_PUBLISH == "true" ]]; then

$GORELEASER_EXEC release ${flags} --config "$GORELEASER_CONFIG" "$@"

if [[ $ENABLE_DOCKER_PUBLISH == "true" ]] && [[ $ENABLE_GORELEASER_SNAPSHOT == "true" ]]; then
_publish_snapshot_images
_publish_snapshot_manifests
fi
else
$GORELEASER_EXEC release --clean --config "$GORELEASER_CONFIG" "$@"
fi
if [[ $ENABLE_COSIGN == "true" ]]; then
rm -rf cosign.pub
rm -rf cosign.key
fi
}

Expand Down
Loading
Loading