Skip to content

feat(ci): advanced triggers for ci-core#21685

Open
erikburt wants to merge 2 commits intodevelopfrom
feat/ci-core-advanced-triggers
Open

feat(ci): advanced triggers for ci-core#21685
erikburt wants to merge 2 commits intodevelopfrom
feat/ci-core-advanced-triggers

Conversation

@erikburt
Copy link
Collaborator

@erikburt erikburt commented Mar 24, 2026

Changes

  • Switch from dorny/paths-filter to new action advanced-triggers
  • Translate the existing path filters, and add more granular path filtering/exclusions to avoid unnecessary runs

Notes

Related to #21659, #21686.

Want some eyes on the actual file sets and triggers:

- name: Advanced Triggers
id: triggers
uses: smartcontractkit/.github/actions/advanced-triggers@advanced-triggers/v1
with:
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"

  • I believe this will be good enough, as most files are included unless they are explicitly excluded.
  • But can we be more restrictive?

Given how this is already rather verbose and repetitive, I'm considering moving the input to this action, into a file like .github/advanced-triggers.yml? 🤔 Would need to add support for that in the action though, and then likely some validation of the file itself.

Testing

Tested these triggers during development:

This PR - will run all tests as the workflow was modified


DX-3534

@erikburt erikburt self-assigned this Mar 24, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Mar 24, 2026

✅ No conflicts with other open PRs targeting develop

@erikburt erikburt marked this pull request as ready for review March 24, 2026 22:05
@erikburt erikburt requested review from a team as code owners March 24, 2026 22:05
Copilot AI review requested due to automatic review settings March 24, 2026 22:05
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Risk Rating: HIGH — Changes affect CI gating/trigger logic for ci-core, with potential for missed test execution or unexpected resource usage.

This PR migrates ci-core change detection from dorny/paths-filter to the shared advanced-triggers action, aiming to reduce unnecessary workflow runs via more granular file-set based triggers.

Changes:

  • Replace dorny/paths-filter-based outputs with advanced-triggers outputs (core-tests, core-fuzz-tests, core-race-tests, core-integration-tests, deployment-tests).
  • Define reusable file-sets and per-job trigger rules using inclusion/exclusion sets and explicit paths.
  • Update downstream should-run selectors to use the new trigger outputs.

@trunk-io
Copy link

trunk-io bot commented Mar 24, 2026

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

@erikburt erikburt force-pushed the feat/ci-core-advanced-triggers branch from 20e9540 to fcb5b10 Compare March 24, 2026 22:38
@cl-sonarqube-production
Copy link

Quality Gate passed Quality Gate passed

Issues
0 New issues
0 Fixed issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
No data about Duplication

See analysis details on SonarQube

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants