Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 70 additions & 70 deletions .github/workflows/ci-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,77 +24,77 @@
pull-requests: read
outputs:
affected-modules: ${{ steps.changed-modules.outputs.modules-json }}
# Runs on workflow changes, any deployment change, or any (non-ignored) core change
should-run-deployment-tests: >-
${{
steps.match-some.outputs.workflow == 'true' ||
steps.match-some.outputs.deployment == 'true' ||
steps.match-every.outputs.core-non-ignored == 'true' ||
github.event_name == 'schedule' ||
github.event_name == 'workflow_dispatch'
}}
# Runs on workflow changes, and any (non-ignored) core changes
should-run-core-tests: >-
${{
steps.match-some.outputs.workflow == 'true' ||
steps.match-every.outputs.core-non-ignored == 'true' ||
github.event_name == 'schedule' ||
github.event_name == 'workflow_dispatch'
}}
core-tests: ${{ steps.triggers.outputs.core-tests }}
core-fuzz-tests: ${{ steps.triggers.outputs.core-fuzz-tests }}
core-race-tests: ${{ steps.triggers.outputs.core-race-tests }}
core-integ-tests: ${{ steps.triggers.outputs.core-integration-tests }}
deployment-tests: ${{ steps.triggers.outputs.deployment-tests }}
runs-on: ubuntu-latest
steps:
- name: Checkout the repo
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
persist-credentials: false
repository: smartcontractkit/chainlink
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: match-some
with:
# "if any changed file matches one or more of the conditions" (https://github.com/dorny/paths-filter/issues/225)
predicate-quantifier: some
# deployment - any changes in the deployment module
# workflow - any changes that could affect this workflow definition
# - Assume any repository action changes affect this workflow
filters: |
deployment:
- 'deployment/**'
workflow:
- '.github/workflows/ci-core.yml'
- '.github/actions/**'
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: match-every

- name: Advanced Triggers
id: triggers
uses: smartcontractkit/.github/actions/advanced-triggers@advanced-triggers/v1

Check warning on line 42 in .github/workflows/ci-core.yml

View workflow job for this annotation

GitHub Actions / Validate Workflow Changes

1. Action is using node20. Versions older than node24 are being deprecated. Use a newer version of the action if possible. (node-version / warning)
with:
# "if any changed file match all of the conditions" (https://github.com/dorny/paths-filter/issues/225)
# - Enables listing of files matching each filter.
# - Paths to files will be available in `${FILTER_NAME}_files` output variable.
# - Paths will be formatted as JSON array
predicate-quantifier: every
# core-non-ignored - all changes except for paths which do not affect core module
# - This is opt-in on purpose. To be safe, new files are assumed to have an affect on core unless listed here specifically.
# - For example: core module does not depend on deployment or integration-tests module.
# all - changes in any directory
# - This is used resolve all affected modules based on changed files
list-files: json
filters: |
core-non-ignored:
- '**'
- '!deployment/**'
- '!integration-tests/**'
- '!tools/secrets/**'
- '!tools/docker/**'
- '!tools/benchmark/**'
- '!**/README.md'
- '!**/CHANGELOG.md'
- '!*.nix'
- '!sonar-project.properties'
- '!nix.conf'
- '!nix-darwin-shell-hook.sh'
- '!LICENSE'
- '!.github/**'
- '!core/scripts/cre/environment/examples/workflows/**'
all:
- '**'
file-sets: |
go-files:
- "**/*.go"
- "**/go.mod"
- "**/go.sum"
core-files:
- "core/**"
all-test-files:
- "**/testdata/**"
- "**/*_test.go"
core-test-files:
- "testdata/**"
- "core/**/testdata/**"
- "core/**/*_test.go"
e2e-tests-files:
- "system-tests/**"
- "integration-tests/**"
workflow-files:
- ".github/workflows/ci-core.yml"
- ".github/actions/**/*.y*ml"
deployment-files:
- "deployment/**"
# Note:
# - pull_request, merge_group, and push events will resolve to true if any changed files match the path/glob patterns
# - exclusion-sets/negations are applied first, and therefore filter all changed files before inclusion sets are applied
# - by default these will resolve to true for schedule, and workflow_dispatch events
triggers: |
core-tests:
exclusion-sets: [ e2e-tests-files, deployment-files ]
inclusion-sets: [ go-files, core-files, all-test-files, workflow-files ]
paths:
- "tools/bin/go_core_tests"
core-fuzz-tests:
exclusion-sets: [ e2e-tests-files, deployment-files ]
inclusion-sets: [ go-files, core-files, all-test-files, workflow-files ]
paths:
- "!**/testdata/**"
- "**/fuzz/**"
- "tools/bin/go_core_fuzz"
core-race-tests:
exclusion-sets: [ e2e-tests-files, deployment-files ]
inclusion-sets: [ go-files, core-files, all-test-files, workflow-files ]
paths:
- "tools/bin/go_core_race_tests"
core-integration-tests:
exclusion-sets: [ e2e-tests-files, deployment-files ]
inclusion-sets: [ go-files, core-files, all-test-files, workflow-files ]
paths:
- "tools/bin/go_core_tests_integration"
deployment-tests:
exclusion-sets: [ e2e-tests-files, core-test-files ]
inclusion-sets: [ go-files, core-files, deployment-files, workflow-files ]
paths:
- "tools/bin/go_core_ccip_deployment_tests"

- name: Changed modules
id: changed-modules
Expand Down Expand Up @@ -207,27 +207,27 @@
type:
- cmd: go_core_tests
os: runs-on=${{ github.run_id }}-unit/cpu=48/ram=96/family=c6i/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
should-run: ${{ needs.filter.outputs.should-run-core-tests }}
should-run: ${{ needs.filter.outputs.core-tests }}
trunk-auto-quarantine: "true"

- cmd: go_core_tests_integration
os: runs-on=${{ github.run_id }}-integ/cpu=48/ram=96/family=c6i/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
should-run: ${{ needs.filter.outputs.should-run-core-tests }}
should-run: ${{ needs.filter.outputs.core-integ-tests }}
trunk-auto-quarantine: "true"
setup-solana: "true"
install-loopps: "true"

- cmd: go_core_fuzz
os: runs-on=${{ github.run_id}}-fuzz/cpu=8/ram=32/family=m6id+m6idn/spot=false/image=ubuntu24-full-x64/extras=s3-cache
should-run: ${{ needs.filter.outputs.should-run-core-tests }}
should-run: ${{ needs.filter.outputs.core-fuzz-tests }}

- cmd: go_core_race_tests
os: runs-on=${{ github.run_id}}-race/cpu=64/ram=128/family=c7i/volume=80gb/spot=false/image=ubuntu24-full-x64/extras=s3-cache
should-run: ${{ needs.filter.outputs.should-run-core-tests }}
should-run: ${{ needs.filter.outputs.core-race-tests }}

- cmd: go_core_ccip_deployment_tests
os: runs-on=${{ github.run_id }}-deployment/cpu=64/ram=128/family=c6i+c7i/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
should-run: ${{ needs.filter.outputs.should-run-deployment-tests }}
should-run: ${{ needs.filter.outputs.deployment-tests }}
trunk-auto-quarantine: "true"
go-mod-directory: "deployment/"
setup-solana: "true"
Expand Down Expand Up @@ -408,7 +408,7 @@
name: test-scripts
needs: [filter]
runs-on: ubuntu-latest
if: ${{ needs.filter.outputs.should-run-core-tests == 'true' }}
if: ${{ needs.filter.outputs.core-tests == 'true' }}
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down
Loading