Skip to content

feat(ci)!: discover and test action distributions - #646

Merged
neilime merged 1 commit into
mainfrom
feat/discover-action-distributions
Nov 10, 2026
Merged

neilime merged 1 commit into
mainfrom
feat/discover-action-distributions

Conversation

@neilime

@neilime neilime commented Nov 9, 2026 •

Copy link
Copy Markdown
Member

Bundled actions currently repeat package paths in rebuild callers, CI jobs and generated-output exclusions. Publish and Container also copy the same distribution test runner. Discover bundled packages and share their validation so adding an action only requires its own package scripts and contract tests.

  • Discover root and nested actions/** packages declaring build and check:dist; accept explicit directories or glob overrides. Empty discovery is a successful no-op.
  • Generate host/container CI matrices. Verify committed bundles, then execute package-owned test:distribution scripts against an isolated bundle through actions/quality/test-action-distribution.
  • Discover automated writer paths from default-branch manifests, preserving identity checks, artifact validation and atomic head protection. Newly added packages are tested in their PR and become writable after reaching the default branch.
  • Resolve the builder from the writer caller's workflow_run.workflows at its trusted default-branch revision. Remove build-workflow; reject missing or duplicate names and wildcard or multiple filters. Verify the source workflow path independently of PR-controlled names. Bundle the action-owned YAML parser without runtime installation.
  • Align JavaScript actions with the parser package layout: ES modules and colocated tests under src/, action-owned manifests/lockfiles, and standard test/watch/coverage scripts. Split unit and public-entrypoint checks into dedicated jobs. All five JavaScript action packages follow the existing parse-ci-reports CI pattern: the Node.js reusable workflow, explicit job permissions, package-owned test:ci, CodeQL and dependency review. Keep repository linting and public-action integration checks. Distribution jobs no longer repeat source tests. Enable native LCOV and JUnit reporting, disable individual comments and collect one combined comment per report type through ci-reports. Keep coverage figures separate per action and exclude unrelated or stale artifacts. Workflow fixtures run with comments disabled.
  • Reuse the parser's src/index.test.js for source and isolated-bundle checks. Remove its separate distribution suite; keep isolation, execution and cleanup in the shared quality action. Parse Node.js JUnit root testcases and empty failure/error/skipped elements correctly, with regression coverage.
  • Adopt discovery and recursive generated-output patterns in Common; regenerate the public action/workflow guides with CI Dokumentor. Consolidate the discovery and dependency-distribution decisions in ADR 0002.

Breaking changes: omitting working-directories discovers packages instead of assuming the root (an explicit . retains root selection); build-workflow is removed. The writer's trigger must select one unique, exact builder name.

Validation: the latest parser change passes 112 source tests and 20 isolated entrypoint tests on Node.js 24. Source tests also pass with dist/ absent; the shared quality action runs the bundle checks. JavaScript/JSON formatting, Markdown lint and local documentation links pass. Earlier validation covered the unchanged automation/isolation suites, public action entrypoints, reproducible bundles, actionlint and Zizmor. The CI configuration audit verifies that all 12 tested action packages across the three repositories have exactly one source-test call, with the parser options and explicit permissions throughout the call chain. Actionlint, Zizmor, formatting, Markdown and changed-guide links pass for this update. CI reruns on the updated commit.

Consumer adoption is in ci-github-publish #507 and ci-github-container #943. The trusted writer handoff still requires the callers to reach each repository's default branch. No PR merge or release is included.

Use the released ci-github-nodejs 3.0.0, pinned to its verified release commit, for consolidated reporting. All 12 action suites across Common, Publish and Container pass and produce JUnit; 11 packages with maintained JavaScript also produce LCOV. Local collection of these real reports validates grouping, separate coverage figures, stale/unrelated artifact exclusion and comment eligibility.

@github-actions

github-actions Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

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

@neilime
neilime force-pushed the feat/discover-action-distributions branch from 46de276 to a73d743 Compare November 9, 2026 18:29
@github-actions github-actions Bot added type: breaking Introduces a breaking change type: feature Introduces a new feature labels Nov 9, 2026
@neilime
neilime force-pushed the feat/discover-action-distributions branch from a73d743 to 7926eaa Compare November 9, 2026 18:32
@github-actions

github-actions Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Internal - Pull request - Continuous Integration - Test results

Workflow run and full reports · Commit 752ada4

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

Test: 243 passed · 0 failed · 0 skipped.

Test details

Test results

Test Results

Status Count
✅ Passed 243
❌ Failed 0
⏭️ Skipped 0
Total 243
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 141 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

github-actions Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Internal - Pull request - Continuous Integration - Code coverage

Workflow run and full reports · Commit 752ada4

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-675a7715-a790-4919-b0ba-8222463b1bb7/lcov.info

Coverage

Metric Covered Total Percentage
Lines 682 697 97.85%
Branches 190 197 96.45%
Functions 59 60 98.33%

Overall: 97.85% 🟢
🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩

ci-reports-1-test-action-lint-pull-request-title-actions-quality-lint-pull-request-title-3c096e93-5ca6-452c-b5f7-6c46444f03a6/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-15bd4633-b2a5-4aac-861c-b7346c79b603/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-d98bcfac-9315-41b0-b8d4-ff195e0465fb/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-557c71ea-44af-48c1-a112-ae4527cecbe6/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

github-actions Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Internal - Pull request - Continuous Integration - Lint results

Workflow run and full reports · Commit 752ada4

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 force-pushed the feat/discover-action-distributions branch 3 times, most recently from 005a175 to 1eed9b6 Compare November 9, 2026 19:57
@neilime
neilime force-pushed the feat/discover-action-distributions branch 2 times, most recently from 6896b09 to 282ae0a Compare November 9, 2026 22:53
@neilime
neilime force-pushed the feat/discover-action-distributions branch 2 times, most recently from 5f4863c to 0e4148a Compare November 10, 2026 06:50
BREAKING CHANGE: Omitted working-directories discovers bundled packages
instead of assuming the root. Remove build-workflow; the writer resolves
one exact builder name from its trusted workflow_run trigger.
@neilime
neilime force-pushed the feat/discover-action-distributions branch from 0e4148a to 49a22d4 Compare November 10, 2026 08:53
@neilime
neilime merged commit 30b7a3a into main Nov 10, 2026
102 of 104 checks passed
@neilime
neilime deleted the feat/discover-action-distributions branch November 10, 2026 08:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: breaking Introduces a breaking change type: feature Introduces a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant