Skip to content

feat: support glob patterns for action distribution outputs - #657

Merged
neilime merged 1 commit into
mainfrom
feat/distribution-output-globs
Nov 11, 2026
Merged

neilime merged 1 commit into
mainfrom
feat/distribution-output-globs

Conversation

@neilime

@neilime neilime commented Nov 11, 2026

Copy link
Copy Markdown
Member

Workspace consumers currently repeat every generated bundle directory in both distribution callers. Support output-directory: actions/**/dist so one pattern covers their committed action bundles. Literal paths remain supported; patterns accept *, ** and ?, relative to each selected package.

Both the builder and writer resolve patterns from directory entries in the trusted PR base tree. The resulting literal allowlist governs change selection, artifact collection, required files, publication and stale-file deletion. Matching directories introduced only by the PR cannot expand the writer's scope. Unmatched patterns, truncated trees, selected symlinks/submodules and duplicate or overlapping output directories fail validation; hidden and node_modules paths are excluded.

DistributionOutputs owns resolution and containment. Existing package discovery, author/origin validation and atomic commit publication retain their responsibilities. Package discovery also excludes generated manifests selected by output patterns. No dependency or runtime upgrade is required.

Validation:

  • 149 source tests and 106 isolated bundle tests pass under Node.js 24, including workspace glob rebuilding/publication, required files, untrusted matching paths, deletion boundaries and invalid patterns.
  • A real pnpm 11.25.0 consumer build resolves 22 committed bundle directories from its trusted base, runs one frozen install and one package invocation, and validates an 87.4 MiB artifact.
  • The consumer's 266 workflow/action contract tests pass with both callers using actions/**/dist.
  • make lint, complete source-snapshot Docker lint and git diff --check pass. The distribution is rebuilt with the pinned ncc and checked for reproducibility after committing.

Metadata, the development guide and ADR 0002 document the pattern contract. Generated action/workflow references remain owned by the existing release documentation job.

Consumer adoption is tracked in cloud-native-aixmarseille/meetup-event-automation#883. It must use a release containing this feature before merging; a tested implementation SHA can be used for draft validation.

@github-actions

Copy link
Copy Markdown
Contributor

Internal - Pull request - Continuous Integration - Test results

Workflow run and full reports · Commit e95fd24

Jobs: 6 success · 0 failure · 0 cancelled · 0 skipped · 0 abandoned.

Test: 298 passed · 0 failed · 0 skipped.

Test details

Test results

Test Results

Status Count
✅ Passed 298
❌ Failed 0
⏭️ Skipped 0
Total 298
Suite Passed Failed Skipped
AstroCheckParser 5 0 0
CheckStyleParser 4 0 0
Cobertura auto-detection 2 0 0
CoberturaParser 3 0 0
Compact category comments 2 0 0
Consolidated reports 2 0 0
Coverage 2 0 0
ESLintParser 3 0 0
JUnitParser 5 0 0
LCOVParser 3 0 0
LintIssue 2 0 0
LoggerService 1 0 0
MarkdownFormatter 2 0 0
Nested JUnit suites 2 0 0
ParserFactory 5 0 0
PathRewriter 14 0 0
PrettierParser 4 0 0
Report exclusions 1 0 0
ReportData 4 0 0
ReportParserCore 2 0 0
ReportParserCore.parseOutputFormats 2 0 0
ReportPathResolver 6 0 0
run 10 0 0
SarifParser 4 0 0
SummaryFormatter 2 0 0
TAPParser 6 0 0
TestResult 4 0 0
Unknown Suite 196 0 0

✅ Pass Rate: 100.0%

Job results and report availability
Job Result Report artifacts
lint success 1
test-action-distributions success 1
test-action-test-action-distribution success 1
test-action-lint-pull-request-title success 1
test-action-parse-ci-reports success 1
test-action-need-fix-to-issue success 1

Only this attempt is included. On partial reruns, rerun all producer jobs for complete reports. CodeQL findings remain in code scanning; other diagnostics remain in the job logs.

@github-actions

Copy link
Copy Markdown
Contributor

Internal - Pull request - Continuous Integration - Code coverage

Workflow run and full reports · Commit e95fd24

Jobs: 6 success · 0 failure · 0 cancelled · 0 skipped · 0 abandoned.

Coverage: 5 source report(s); percentages remain separate.

Coverage details

Coverage results

ci-reports-1-test-action-distributions-actions-action-distributions-d0a98db1-ad6b-4517-8f31-802c90c6893f/lcov.info

Coverage

Metric Covered Total Percentage
Lines 898 917 97.93%
Branches 253 262 96.56%
Functions 79 80 98.75%

Overall: 97.93% 🟢
🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩

ci-reports-1-test-action-lint-pull-request-title-actions-quality-lint-pull-request-title-e8b46e62-c32b-498e-8b83-fc943d7a1661/lcov.info

Coverage

Metric Covered Total Percentage
Lines 45 45 100.00%
Branches 14 15 93.33%
Functions 1 1 100.00%

Overall: 100.00% 🟢
🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩

ci-reports-1-test-action-need-fix-to-issue-actions-need-fix-to-issue-45e213e4-b8ef-4821-8658-ea26aaec6a13/lcov.info

Coverage

Metric Covered Total Percentage
Lines 95 95 100.00%
Branches 36 36 100.00%
Functions 7 7 100.00%

Overall: 100.00% 🟢
🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩

ci-reports-1-test-action-parse-ci-reports-actions-quality-parse-ci-reports-e0515079-67aa-4c24-8d04-3b5b8433531e/lcov.info

Coverage

Metric Covered Total Percentage
Lines 2563 2687 95.39%
Branches 478 578 82.70%
Functions 194 200 97.00%

Overall: 95.39% 🟢
🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩⬜

ci-reports-1-test-action-test-action-distribution-actions-quality-test-action-distribution-8aceb3f0-7531-4b19-9111-3270cda6884a/lcov.info

Coverage

Metric Covered Total Percentage
Lines 71 71 100.00%
Branches 13 13 100.00%
Functions 4 4 100.00%

Overall: 100.00% 🟢
🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩

Job results and report availability
Job Result Report artifacts
lint success 1
test-action-distributions success 1
test-action-test-action-distribution success 1
test-action-lint-pull-request-title success 1
test-action-parse-ci-reports success 1
test-action-need-fix-to-issue success 1

Only this attempt is included. On partial reruns, rerun all producer jobs for complete reports. CodeQL findings remain in code scanning; other diagnostics remain in the job logs.

@github-actions

Copy link
Copy Markdown
Contributor

Internal - Pull request - Continuous Integration - Lint results

Workflow run and full reports · Commit e95fd24

Jobs: 6 success · 0 failure · 0 cancelled · 0 skipped · 0 abandoned.

Lint: Collected diagnostics and Super-Linter summaries. Execution status is included in the job outcomes.

Super-Linter details

Super-linter summary

Language Validation result
BIOME_FORMAT Pass ✅
BIOME_LINT Pass ✅
CHECKOV Pass ✅
GITHUB_ACTIONS Pass ✅
GITHUB_ACTIONS_ZIZMOR Pass ✅
GITLEAKS Pass ✅
GIT_COMMITLINT Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
JSCPD Pass ✅
MARKDOWN Pass ✅
MARKDOWN_PRETTIER Pass ✅
NATURAL_LANGUAGE Pass ✅
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅
TRIVY Pass ✅
YAML Pass ✅
YAML_PRETTIER Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter
Super-linter revision: 2da136927bd4a73596db63044b504547c62cb854
Super-linter version: 9.0.0

Job results and report availability
Job Result Report artifacts
lint success 1
test-action-distributions success 1
test-action-test-action-distribution success 1
test-action-lint-pull-request-title success 1
test-action-parse-ci-reports success 1
test-action-need-fix-to-issue success 1

Only this attempt is included. On partial reruns, rerun all producer jobs for complete reports. CodeQL findings remain in code scanning; other diagnostics remain in the job logs.

@neilime
neilime merged commit 9600fc8 into main Nov 11, 2026
103 checks passed
@neilime
neilime deleted the feat/distribution-output-globs branch November 11, 2026 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feature Introduces a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant