fix: CI workflow audit - repair bugs, remove dead config, consolidate shared logic#9314
Draft
mikhail-dcl wants to merge 3 commits into
Draft
fix: CI workflow audit - repair bugs, remove dead config, consolidate shared logic#9314mikhail-dcl wants to merge 3 commits into
mikhail-dcl wants to merge 3 commits into
Conversation
- test.yml: watchdog gate never ran (implicit success() wrapping); any label add cancelled in-flight test runs; push/merge_group only passed via null==false coercion - make event conditions explicit - build-unitycloud.yml: drop dead merge_group trigger (prebuild never handled the event, so queue runs skipped every job) - auto-sync-main-to-dev.yml: don't fail when a sync PR is already open; fix dangling line continuation - enforce-group-approvals.yml: count only each reviewer's latest state-changing review so superseded approvals don't satisfy the gate - pr-comment-*.yml: scope find-comment to the build badge comment so it can't overwrite other bot comments - test-performance.yml: Library cache key was constant (immutable cache pinned the first-ever entry forever); align with test.yml - test.yml/test-performance.yml: remove githubToken that referenced a never-defined env var - build-game-ci-image.yml: remove push trigger (inputs are empty on push, producing a malformed image tag) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- drop workflow_dispatch triggers no job can handle (claude-pr-review, claude-pr-review-require, enforce-group-approvals, auto-assign, pr-comment-artifact-url, pr-comment-warnings) and the unhandled pull_request_review_comment trigger in claude-pr-review - pr-closure.yml: remove TARGET env - there is no matrix in this job and build.py --delete derives targets from BRANCH_NAME - on-delete-release.yml: don't write version "null" to latest.json when the last release is deleted - build-release-main-page.yml: remove workflow_run entry that matches by file path (matching is by name only), drop target_commitish pointing at the dev head, trim unused job outputs - build-unitycloud.yml: remove defaults on required workflow_call inputs (never used); document the check names shared with test.yml - test.yml: delete long-dead commented-out lint steps; document check names referenced by build-unitycloud.yml skip statuses - close-inactive-issues.yml: drop contents:write - actions/stale does not need it - version action: commit_sha is optional (falls back to GITHUB_SHA); callers already rely on that - build-profile-nightly.yml: rename misleading full_version output that actually carried short_version Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ipts - .github/actions/unity-image: Unity version read + image tag composition + GHCR login + pull-or-seed, previously triplicated across test.yml (lint and test jobs) and test-performance.yml with three diverging login/seed implementations; adopts the strict miss detection and falls back to Docker Hub without seeding on transient GHCR errors - .github/actions/unity-lfs-ssh: LFS list/cache/pull + ssh-agent + known_hosts (from the meta API, replacing one hardcoded-keys copy), previously triplicated in the same three jobs - scripts/ci/s3-build-path.sh: single source of the event->prefix map and S3 destination format, previously quadruplicated across build-unitycloud, pr-comment-artifact-url, visual-regression and create-release-branch (drift there silently breaks download links) - .github/actions/load-prompt: base-SHA prompt loading used by both claude-pr-review jobs and dependency-security-review - .github/scripts/claude-review-comments.js: shared fetch/filter/ minimize helpers for the three Claude marker-comment status steps (also upgrades two copies from a single-page listComments to paginate) - .github/scripts/rerun-failed-enforce-approvals.sh: shared by claude-pr-review and enforce-group-approvals; both now get the in-progress guard and the same search depth - test-performance.yml now uses the existing setup-docker-disk action instead of an inline copy of its docker data-root move - test.yml: drop csharp-lint-reports upload (same files already uploaded as inspect-code-reports; no consumers); remove the /tmp/ssh-unity and /tmp/unity-home prep steps whose only consumers were the commented-out docker steps deleted earlier - merge s3-latest-release + on-delete-release into one idempotent release->latest.json workflow (resolve current latest, write it) - merge issue-deduplication + auto-label-issues into issue-triage.yml with a task choice input for manual dispatch - annotate the fix/chore title regex with keep-in-sync notes across its three copies Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
github-actions
Bot
requested review from
DafGreco,
alejandro-jimenez-dcl and
lorenzo-ranciaffi
July 7, 2026 09:06
Contributor
This was referenced Jul 7, 2026
mikhail-dcl
marked this pull request as draft
July 7, 2026 09:40
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.
Pull Request Description
What does this PR change?
Full CI pipeline audit in three commits (supersedes #9312 and #9313).
1. Bug fixes
test.ymlwatchdognever ran —ifwithoutalways()is wrapped in an implicitsuccess()(verified on live runs); the gate now actually fails when lint/tests failnew-dependency,claude-approved,no QA needed) cancelled in-flight test runs; cancellation and job conditions now mirrorbuild-unitycloud.ymlnull == falsecoercion; event conditions are now explicit (keeps the dev-push warning-baseline path alive)enforce-group-approvalscounted approvals later superseded by "request changes"; only each reviewer's latest state-changing review counts nowtest-performanceLibrary cache key was constant — the first-ever entry was served forever; nowhashFiles-based like test.ymlauto-sync-main-to-devfailed on every push while a sync PR was open;build-game-ci-imagepush trigger built malformed tags; deadgithubTokenenv and no-opmerge_grouptrigger removed2. Dead-config cleanup
workflow_dispatch×6,pull_request_review_comment), the phantommatrix.targetin pr-closure, the"null"version written tolatest.json, the never-matchingworkflow_runpath entry and dev-pointingtarget_commitishin build-release-main-page, an unneededcontents: write, ~35 lines of commented-out steps, and misleading contracts (commit_sha"required",full_versioncarryingshort_version)3. Consolidation (net −145 lines)
unity-image(was ×3 with diverging GHCR login/seed logic),unity-lfs-ssh(was ×3; drops one hardcoded-host-keys copy),load-prompt(was ×3)scripts/ci/s3-build-path.sh(S3 path format was ×4 — drift silently breaks download links),claude-review-comments.js(now paginates; single-page copies could miss the verdict),rerun-failed-enforce-approvals.shlatest.jsonworkflows (now authenticated, no aws-cli container) and the two AI issue workflows intoissue-triage.ymlFlagged, not changed: build-unitycloud declares 12
workflow_dispatchinputs vs GitHub's documented max of 10 — worth one manual dispatch test; the Dependency Security Review MEDIUMpendingdead-end stays as-is by maintainer decision.Validation: actionlint clean on all touched files,
bash -n/node --checkon new scripts.Test Instructions
CI-only change — nothing to run in the client.
Steps (standard run): N/A
Prerequisites
Test Steps
@claude review→ status/comment behavior unchangedQuality Checklist
🤖 Generated with Claude Code