chore(ci): Fix CI infra failures (orphan submodule, setuptools, diagram-output) - #21835
Open
drussell23 wants to merge 3 commits into
Open
chore(ci): Fix CI infra failures (orphan submodule, setuptools, diagram-output)#21835drussell23 wants to merge 3 commits into
drussell23 wants to merge 3 commits into
Conversation
The repo tree contained a gitlink (mode 160000, commit 99cd9e07d36b840) at JARVIS-AI.wiki/ with no corresponding entry in .gitmodules — likely an accidental `git add` from a sibling local clone. The orphan caused every workflow that runs `git submodule foreach --recursive` to emit: fatal: No url found for submodule path 'JARVIS-AI.wiki' in .gitmodules ##[warning]The process '/usr/bin/git' failed with exit code 128 Two real workflows depended on the wiki being a sibling working tree, NOT a submodule: deploy-wiki.sh clones from https://github.com/drussell23/JARVIS-AI.wiki.git into a local JARVIS-AI.wiki/ directory at deploy time. The orphan gitlink was never the intended representation. Fix: `git rm --cached JARVIS-AI.wiki` removes the gitlink from the index without deleting any local working-tree contents (deploy-wiki.sh remains fully functional). Added JARVIS-AI.wiki/ to .gitignore so it cannot be re-added accidentally. Closes #21795 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ners Both jobs in screen-lock-e2e-test.yml fail with `ModuleNotFoundError: No module named 'pkg_resources'` during dependency resolution. Root cause: pkg_resources was removed from the Python 3.12+ stdlib (it now lives only in the setuptools package), and the runner image's `setup-python` action does not pre-install setuptools by default on newer Python versions. Tests never run because the import fails at boot. Fix: extend `pip install --upgrade pip` → `pip install --upgrade pip setuptools wheel` in the two affected jobs (Mock Testing + Integration Testing). The "real" E2E job is unaffected (different setup pattern, runs only on self-hosted runners). Closes #21796 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…over
The discover-diagrams step writes a JSON array of changed files to
$GITHUB_OUTPUT via `echo "changed_files=$json" >> "$GITHUB_OUTPUT"`. The
runner rejects this format because $GITHUB_OUTPUT's `name=value` writes
require a single-line value, but `jq -Rs` emits pretty-printed multi-line
JSON by default. Failure log:
##[error]Unable to process file command 'output' successfully.
##[error]Invalid format ' "docs/architecture/OUROBOROS_VENOM_PRD.md"'
(The leading whitespace + quote is jq's pretty-print indentation, which is
the smoking gun.)
Fix: add -c (compact) flag → `jq -Rsc 'split("\n") | map(select(length >
0))'` emits single-line JSON suitable for $GITHUB_OUTPUT. Behavior is
otherwise identical — same array shape, same content, just no whitespace.
For multi-line outputs that genuinely need newlines, the heredoc syntax
(`name<<EOF` / value / `EOF`) is the alternative; here the value is
naturally single-line so -c is the cleaner fix.
Closes #21798
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
📊 PR Size AnalysisSize: Review Checklist
|
🤖 CI/CD Pipeline ResultsStatus: success Pipeline Stages
|
🚨 CI/CD Failure DetectedThe Environment Variable Validation workflow failed for this PR. Action RequiredA tracking PR has been automatically created to help resolve this issue: Quick LinksPlease review the analysis and implement the suggested fixes. 🤖 Auto-generated by JARVIS CI/CD Manager |
🚨 CI/CD Failure DetectedThe Database Connection Validation workflow failed for this PR. Action RequiredA tracking PR has been automatically created to help resolve this issue: Quick LinksPlease review the analysis and implement the suggested fixes. 🤖 Auto-generated by JARVIS CI/CD Manager |
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
Resolves three of the four CI infra issues filed during the §23 Reverse Russian Doll PRD admin-merge (#21749 →
b4706e455d). All three were verified as infra-only failures unrelated to any code change. Each is a small, surgical fix with its own commit for clean revert.The fourth issue (#21797 Vercel) is external — the Vercel GitHub App posts the status check directly, not from a workflow file, and the
jarvis-cloud/.vercel/vercel.jsonis real production cron config that must not be touched. It will be addressed by a comment on the issue with operator-action context (resolve account block, remove integration, or mark not-required in branch protection).Commits (one per issue, squash on merge)
1.
chore(ci): Remove orphan JARVIS-AI.wiki submodule gitlink— Closes #21795The repo tree carried a gitlink (mode 160000, commit
99cd9e07d36b840) atJARVIS-AI.wiki/with no corresponding entry in.gitmodules. Likely an accidentalgit addfrom a sibling local clone. The orphan caused every workflow that runsgit submodule foreach --recursiveto emitfatal: No url found for submodule path 'JARVIS-AI.wiki' in .gitmodules.Fix:
git rm --cached JARVIS-AI.wikiremoves the gitlink from the index without deleting any local working-tree contents.deploy-wiki.shcontinues to clone the wiki as a sibling working dir — its workflow is unaffected. AddedJARVIS-AI.wiki/to.gitignoreso the orphan cannot be re-added accidentally.2.
chore(ci): Install setuptools+wheel on Mock + Integration testing runners— Closes #21796Mock Testing (Safe)andIntegration Testingjobs inscreen-lock-e2e-test.ymlfailed withModuleNotFoundError: No module named 'pkg_resources'. Root cause:pkg_resourceswas removed from Python 3.12+ stdlib (it now lives only in setuptools), andactions/setup-python@v5does not pre-install setuptools by default on newer Python versions.Fix: change
pip install --upgrade pip→pip install --upgrade pip setuptools wheelin both jobs. TheReal E2E Testing (Self-Hosted)job uses a different setup pattern and is unaffected.3.
chore(ci): Use jq -Rsc for compact GITHUB_OUTPUT in auto-diagram discover— Closes #21798The
🔍 Discover & Analyze Diagramsstep inauto-diagram-generator.ymlfailed with##[error]Unable to process file command 'output' successfully. ##[error]Invalid format ' "docs/architecture/OUROBOROS_VENOM_PRD.md"'. Root cause: the step writes a JSON array to$GITHUB_OUTPUTviaecho "name=$json" >> $GITHUB_OUTPUT, butjq -Rsemits pretty-printed multi-line JSON by default.$GITHUB_OUTPUT'sname=valuesyntax only accepts single-line values; multi-line writes need heredoc syntax.Fix: add
-c(compact) flag →jq -Rsc. Single-line JSON, same array shape, no behavior change beyond the format fix. Same potential issue exists with thediagram_matrixoutput but it's already constructed via bash concatenation that produces single-line output, so no change needed there.What's NOT in this PR
vercel.jsonedits — that's real prod cron config (/api/ouroboros/submitdaily,/api/devices/healthdaily) and must stay untouched without explicit ops approval.backend/modifiedDiff stats
Test plan
git rm --cachedpreserves localJARVIS-AI.wiki/working dir (deploy-wiki.sh untouched)pip installlines updated to includesetuptools wheeljq -Rscproduces single-line JSON (verified spec —-cflag standard)Revert path
Three independent commits — each can be reverted in isolation if any single fix proves wrong. After squash-merge, single revert restores all three.
🤖 Generated with Claude Code
Summary by cubic
Fixes three CI workflow failures to restore reliable runs. Removes an orphan wiki submodule, installs missing Python build tools, and outputs compact JSON in the diagram discovery step.
JARVIS-AI.wikisubmodule gitlink and added to.gitignore;deploy-wiki.shbehavior unchanged.pip install --upgrade pip setuptools wheelto restorepkg_resourceson Python 3.12+ (actions/setup-python@v5).jq -Rscso JSON written to$GITHUB_OUTPUTis single-line and accepted by the runner.Written for commit 7ab0c76. Summary will update on new commits.