refactor(ci): split CI workflow and optimize path filtering#14107
Closed
refactor(ci): split CI workflow and optimize path filtering#14107
Conversation
Contributor
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. |
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR refactors the CI workflow by splitting path-filtered jobs into separate workflow files and optimizing path filtering approaches to improve organization and maintainability.
- Extracted path-filtered jobs from the main CI workflow into dedicated workflow files
- Optimized path filtering by using native GitHub path filters with YAML anchors where possible
- Maintained
dorny/paths-filteronly where complex patterns or external file references are required
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/ci.yml |
Removed 6 path-filtered jobs that were moved to separate workflows |
.github/workflows/test-wasm32.yml |
New workflow for WASM32 testing with negative path patterns using dorny/paths-filter |
.github/workflows/test-napi.yml |
New workflow for NAPI testing with multiple negative patterns and predicate-quantifier |
.github/workflows/conformance.yml |
New workflow for conformance testing without path filtering |
.github/workflows/minification.yml |
New workflow for minification size checks using native GitHub path filters with YAML anchors |
.github/workflows/allocations.yml |
New workflow for memory allocation checks using native GitHub path filters with YAML anchors |
.github/workflows/linter-codegen.yml |
New workflow for linter code generation using native GitHub path filters with YAML anchors |
.github/workflows/ast-changes.yml |
New workflow for AST code generation checks using dorny/paths-filter with external file reference |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
8ca282d to
fceb4fa
Compare
…lters - Move jobs using dorny/paths-filter to separate workflow files - Use native GitHub workflow path filters where possible (positive patterns) - Remove dorny/paths-filter from workflows with negative patterns (run on all changes) - Use YAML anchors to avoid duplication between pull_request and push triggers Breaking down the CI workflow improves: - Workflow readability and maintainability - Reduces external action dependencies - Faster workflow initialization (no checkout needed for path filtering) - More direct GitHub integration for workflows with positive path patterns
57ac125 to
6a521ff
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR refactors the CI workflow by splitting jobs that use path filtering into separate workflow files and optimizing the use of path filters.
Goal is to reduce total number of CI jobs.
Changes
1. Split CI workflow into multiple files
Moved jobs using
dorny/paths-filterto dedicated workflow files:test-wasm32.yml- WASM32 testingtest-napi.yml- NAPI testingconformance.yml- Conformance testingminification.yml- Minification size checksallocations.yml- Memory allocation checksast-changes.yml- AST code generation checkslinter-codegen.yml- Linter code generation checks2. Optimized path filtering approach
Native GitHub path filters (with YAML anchors): Used for workflows with positive path patterns:
minification.ymlallocations.ymllinter-codegen.ymldorny/paths-filter: Kept for workflows that require it:
test-wasm32.yml- Uses negative patterns (exclusions)test-napi.yml- Uses negative patterns with predicate-quantifierast-changes.yml- References external YAML file for pathsNo path filters:
conformance.yml- Uses complex negative patterns, runs on all changesBenefits
Testing
All workflows have been tested with their respective path filtering configurations. The split maintains the same functionality while improving code organization.