Skip to content

fix(ci): repair build-desktop workflow parse failure + node20 action bumps - #4488

Merged
senamakel merged 3 commits into
tinyhumansai:mainfrom
senamakel:fix/two-branch-ci-followups
Jul 4, 2026
Merged

senamakel merged 3 commits into
tinyhumansai:mainfrom
senamakel:fix/two-branch-ci-followups

Conversation

@senamakel

@senamakel senamakel commented Jul 4, 2026 •

Copy link
Copy Markdown
Member

Summary

Problem

Solution

  • Merged GH_TOKEN into the build job's existing env: block.
  • Local validation now uses a strict loader that rejects duplicate keys across all 20 workflow files (all pass).
  • Version bumps to the node24-runtime majors; paths-filter@v4 output/list-files contract is unchanged.

Submission Checklist

  • Tests added or updated — N/A: workflow-only fix; validated with strict YAML parse across all workflows
  • Diff coverage ≥ 80% — N/A: no app/Rust source changed
  • Coverage matrix updated — N/A: CI-only
  • All affected feature IDs from the matrix are listed under ## Related — N/A
  • No new external network dependencies introduced
  • Manual smoke checklist updated — N/A
  • Linked issue closed via Closes #NNN — N/A: follow-up to #4486

Impact

  • Restores release build tooling (build-desktop.yml is the shared build pipeline for staging/production cuts).
  • Removes node20 deprecation warnings.

Related

  • Closes:
  • Follow-up PR(s)/TODOs: copy XGITHUB_APP_ID/XGITHUB_APP_PRIVATE_KEY (App: tiny-humans-bot) into the Release-PR-Automation environment so prepare-release-pr can mint its token.

AI Authored PR Metadata (required for Codex/Linear PRs)

Linear Issue

  • Key: N/A
  • URL: N/A

Commit & Branch

  • Branch: fix/two-branch-ci-followups

https://claude.ai/code/session_01FsaameYvpZMKZfUeWqZi7x

The GH_TOKEN scoping script inserted a second env: key into build-desktop's
build job — GitHub rejects duplicate mapping keys, so every push produced a
failed 'invalid workflow file' run (PyYAML's lax parser hid it; validation
is now strict about duplicates). Merge GH_TOKEN into the existing env block.

Also bump actions/create-github-app-token v2→v3 and dorny/paths-filter
v3→v4 to move off the deprecated node20 runner runtime.

Claude-Session: https://claude.ai/code/session_01FsaameYvpZMKZfUeWqZi7x
@senamakel
senamakel requested a review from a team July 4, 2026 04:47
@coderabbitai

coderabbitai Bot commented Jul 4, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR updates GitHub Actions workflows: repositions Telegram bot username env vars into the job env block in build-desktop.yml, and bumps action versions—dorny/paths-filter to v4 in pr-ci.yml, and actions/create-github-app-token to v3 in prepare-release-pr.yml, release-production.yml, and release-staging.yml.

Changes

CI Workflow Updates

Layer / File(s) Summary
Env block correction
.github/workflows/build-desktop.yml
Moves OPENHUMAN_TELEGRAM_BOT_USERNAME and VITE_TELEGRAM_BOT_USERNAME into the job-level env: block alongside GH_TOKEN, sourced from inputs.telegram_bot_username.
Action version bumps
.github/workflows/pr-ci.yml, .github/workflows/prepare-release-pr.yml, .github/workflows/release-production.yml, .github/workflows/release-staging.yml
Updates dorny/paths-filter from v3 to v4, and actions/create-github-app-token from v2 to v3 in three workflows.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Suggested labels: bug

Suggested reviewers: sanil-23, M3gA-Mind

Poem

A hop, a skip, a version bump,
Env vars land with a tidy thump,
v2 to v3, filters anew,
CI carrots crunching through,
This rabbit ships a clean release! 🐇🥕

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main fixes: the build-desktop workflow parse issue and the action/runtime version bumps.

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/release-production.yml:
- Around line 120-125: The Generate GitHub App token step currently mints a
token with the app’s full installation permissions, which is broader than this
release job needs. Update the actions/create-github-app-token@v3 usage in the
app-token step to add the same least-privilege permission scoping pattern used
in prepare-release-pr.yml, specifically limiting the token to the contents and
pull request permissions required for pushing release/main updates and creating
tags.

In @.github/workflows/release-staging.yml:
- Around line 95-100: The GitHub App token generated in the release-staging
workflow is inheriting broad installation permissions instead of least
privilege. Update the Generate GitHub App token step in the release-staging
workflow to pass the appropriate permission-scoping inputs on
actions/create-github-app-token@v3, limiting it to only the contents: write
access needed for the version-bump commit and tag push.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 18d2588e-22c9-46fe-ae39-2616b8a516c8

📥 Commits

Reviewing files that changed from the base of the PR and between 5b15bbc and 91728b8.

📒 Files selected for processing (5)
  • .github/workflows/build-desktop.yml
  • .github/workflows/pr-ci.yml
  • .github/workflows/prepare-release-pr.yml
  • .github/workflows/release-production.yml
  • .github/workflows/release-staging.yml

Comment thread .github/workflows/release-staging.yml Resolved
Same least-privilege pattern as prepare-release-pr — the minted installation
token only needs to push the bump commit/tag (and production's back-merge);
branch-protection bypass comes from the App identity, not token scopes.

Claude-Session: https://claude.ai/code/session_01FsaameYvpZMKZfUeWqZi7x
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 4, 2026
A PR touching only scripts/ci/vitest-changed-coverage.sh or
rust-coverage-changed.sh set the *-full flag without setting the lane
trigger (frontend / rust-core), so the changed runner never executed.
Add the scripts to the lane filters; combined with the existing *-full
entries this runs the full suite whenever the runners themselves change.

Claude-Session: https://claude.ai/code/session_01FsaameYvpZMKZfUeWqZi7x
@senamakel
senamakel merged commit 4f5e66a into tinyhumansai:main Jul 4, 2026
8 of 10 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in Team Openhuman Jul 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

1 participant