@@ -24,77 +24,77 @@ jobs:
2424 pull-requests : read
2525 outputs :
2626 affected-modules : ${{ steps.changed-modules.outputs.modules-json }}
27- # Runs on workflow changes, any deployment change, or any (non-ignored) core change
28- should-run-deployment-tests : >-
29- ${{
30- steps.match-some.outputs.workflow == 'true' ||
31- steps.match-some.outputs.deployment == 'true' ||
32- steps.match-every.outputs.core-non-ignored == 'true' ||
33- github.event_name == 'schedule' ||
34- github.event_name == 'workflow_dispatch'
35- }}
36- # Runs on workflow changes, and any (non-ignored) core changes
37- should-run-core-tests : >-
38- ${{
39- steps.match-some.outputs.workflow == 'true' ||
40- steps.match-every.outputs.core-non-ignored == 'true' ||
41- github.event_name == 'schedule' ||
42- github.event_name == 'workflow_dispatch'
43- }}
27+ core-tests : ${{ steps.triggers.outputs.core-tests }}
28+ core-fuzz-tests : ${{ steps.triggers.outputs.core-fuzz-tests }}
29+ core-race-tests : ${{ steps.triggers.outputs.core-race-tests }}
30+ core-integ-tests : ${{ steps.triggers.outputs.core-integration-tests }}
31+ deployment-tests : ${{ steps.triggers.outputs.deployment-tests }}
4432 runs-on : ubuntu-latest
4533 steps :
4634 - name : Checkout the repo
47- uses : actions/checkout@v4
35+ uses : actions/checkout@v6
4836 with :
4937 persist-credentials : false
5038 repository : smartcontractkit/chainlink
51- - uses : dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
52- id : match-some
53- with :
54- # "if any changed file matches one or more of the conditions" (https://github.com/dorny/paths-filter/issues/225)
55- predicate-quantifier : some
56- # deployment - any changes in the deployment module
57- # workflow - any changes that could affect this workflow definition
58- # - Assume any repository action changes affect this workflow
59- filters : |
60- deployment:
61- - 'deployment/**'
62- workflow:
63- - '.github/workflows/ci-core.yml'
64- - '.github/actions/**'
65- - uses : dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
66- id : match-every
39+
40+ - name : Advanced Triggers
41+ id : triggers
42+ uses : smartcontractkit/.github/actions/advanced-triggers@advanced-triggers/v1
6743 with :
68- # "if any changed file match all of the conditions" (https://github.com/dorny/paths-filter/issues/225)
69- # - Enables listing of files matching each filter.
70- # - Paths to files will be available in `${FILTER_NAME}_files` output variable.
71- # - Paths will be formatted as JSON array
72- predicate-quantifier : every
73- # core-non-ignored - all changes except for paths which do not affect core module
74- # - This is opt-in on purpose. To be safe, new files are assumed to have an affect on core unless listed here specifically.
75- # - For example: core module does not depend on deployment or integration-tests module.
76- # all - changes in any directory
77- # - This is used resolve all affected modules based on changed files
78- list-files : json
79- filters : |
80- core-non-ignored:
81- - '**'
82- - '!deployment/**'
83- - '!integration-tests/**'
84- - '!tools/secrets/**'
85- - '!tools/docker/**'
86- - '!tools/benchmark/**'
87- - '!**/README.md'
88- - '!**/CHANGELOG.md'
89- - '!*.nix'
90- - '!sonar-project.properties'
91- - '!nix.conf'
92- - '!nix-darwin-shell-hook.sh'
93- - '!LICENSE'
94- - '!.github/**'
95- - '!core/scripts/cre/environment/examples/workflows/**'
96- all:
97- - '**'
44+ file-sets : |
45+ go-files:
46+ - "**/*.go"
47+ - "**/go.mod"
48+ - "**/go.sum"
49+ core-files:
50+ - "core/**"
51+ all-test-files:
52+ - "**/testdata/**"
53+ - "**/*_test.go"
54+ core-test-files:
55+ - "testdata/**.go"
56+ - "core/**/testdata/**"
57+ - "core/**_test.go"
58+ e2e-tests-files:
59+ - "system-tests/**"
60+ - "integration-tests/**"
61+ workflow-files:
62+ - ".github/workflows/ci-core.yml"
63+ - ".github/actions/**/*.y*ml"
64+ deployment-files:
65+ - "deployment/**"
66+ # Note:
67+ # - pull_request, merge_group, and push events will resolve to true if any changed files match the path/glob patterns
68+ # - exclusion-sets/negations are applied first, and therefore filter all changed files before inclusion sets are applied
69+ # - by default these will resolve to true for schedule, and workflow_dispatch events
70+ triggers : |
71+ core-tests:
72+ exclusion-sets: [ e2e-tests-files, deployment-files ]
73+ inclusion-sets: [ go-files, core-files, all-test-files, workflow-files ]
74+ paths:
75+ - "tools/bin/go_core_tests"
76+ core-fuzz-tests:
77+ exclusion-sets: [ e2e-tests-files, deployment-files ]
78+ inclusion-sets: [ go-files, core-files, all-test-files, workflow-files ]
79+ paths:
80+ - "!**/testdata/**"
81+ - "**/fuzz/**"
82+ - "tools/bin/go_core_fuzz"
83+ core-race-tests:
84+ exclusion-sets: [ e2e-tests-files, deployment-files ]
85+ inclusion-sets: [ go-files, core-files, all-test-files, workflow-files ]
86+ paths:
87+ - "tools/bin/go_core_race_tests"
88+ core-integration-tests:
89+ exclusion-sets: [ e2e-tests-files, deployment-files ]
90+ inclusion-sets: [ go-files, core-files, all-test-files, workflow-files ]
91+ paths:
92+ - "tools/bin/go_core_tests_integration"
93+ deployment-tests:
94+ exclusion-sets: [ e2e-tests-files, core-test-files ]
95+ inclusion-sets: [ go-files, core-files, deployment-files, workflow-files ]
96+ paths:
97+ - "tools/bin/go_core_ccip_deployment_tests"
9898
9999 - name : Changed modules
100100 id : changed-modules
@@ -207,27 +207,27 @@ jobs:
207207 type :
208208 - cmd : go_core_tests
209209 os : runs-on=${{ github.run_id }}-unit/cpu=48/ram=96/family=c6i/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
210- should-run : ${{ needs.filter.outputs.should-run- core-tests }}
210+ should-run : ${{ needs.filter.outputs.core-tests }}
211211 trunk-auto-quarantine : " true"
212212
213213 - cmd : go_core_tests_integration
214214 os : runs-on=${{ github.run_id }}-integ/cpu=48/ram=96/family=c6i/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
215- should-run : ${{ needs.filter.outputs.should-run- core-tests }}
215+ should-run : ${{ needs.filter.outputs.core-integ -tests }}
216216 trunk-auto-quarantine : " true"
217217 setup-solana : " true"
218218 install-loopps : " true"
219219
220220 - cmd : go_core_fuzz
221221 os : runs-on=${{ github.run_id}}-fuzz/cpu=8/ram=32/family=m6id+m6idn/spot=false/image=ubuntu24-full-x64/extras=s3-cache
222- should-run : ${{ needs.filter.outputs.should-run- core-tests }}
222+ should-run : ${{ needs.filter.outputs.core-fuzz -tests }}
223223
224224 - cmd : go_core_race_tests
225225 os : runs-on=${{ github.run_id}}-race/cpu=64/ram=128/family=c7i/volume=80gb/spot=false/image=ubuntu24-full-x64/extras=s3-cache
226- should-run : ${{ needs.filter.outputs.should-run- core-tests }}
226+ should-run : ${{ needs.filter.outputs.core-race -tests }}
227227
228228 - cmd : go_core_ccip_deployment_tests
229229 os : runs-on=${{ github.run_id }}-deployment/cpu=64/ram=128/family=c6i+c7i/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
230- should-run : ${{ needs.filter.outputs.should-run- deployment-tests }}
230+ should-run : ${{ needs.filter.outputs.deployment-tests }}
231231 trunk-auto-quarantine : " true"
232232 go-mod-directory : " deployment/"
233233 setup-solana : " true"
@@ -408,7 +408,7 @@ jobs:
408408 name : test-scripts
409409 needs : [filter]
410410 runs-on : ubuntu-latest
411- if : ${{ needs.filter.outputs.should-run- core-tests == 'true' }}
411+ if : ${{ needs.filter.outputs.core-tests == 'true' }}
412412 steps :
413413 - name : Checkout
414414 uses : actions/checkout@v4
0 commit comments