Skip to content

ci(docs): publish main's web client to its versioned release slot - #1271

Open
aristarkhovNV wants to merge 1 commit into
mainfrom
aaristarkhov/versioned-main-client
Open

aristarkhovNV wants to merge 1 commit into
mainfrom
aaristarkhov/versioned-main-client

Conversation

@aristarkhovNV

@aristarkhovNV aristarkhovNV commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Main now deploys the web client to both client/main/ and client/release-<VERSION>/ (today client/release-1.7.x/). That means the latest release line stays current without sync-release-branches.yml mirroring main into the release branch. The sync workflow stays in place for now. Once this lands it can be disabled without anyone seeing a stale client.

  • Who publishes which directory. The changes job now outputs client-targets, and the deploy step copies the build into each listed directory:

    Push Targets
    main main and release-<VERSION>
    tag vX.Y.Z
    release branch its slug, or nothing
  • Release pushes main already covers. If main's VERSION matches the branch and the branch has no commits main lacks (for example, the sync fast-forward), the push skips the web client build. It can no longer overwrite main's copy.

  • Diverged release branches. A main push whose VERSION names a release branch with commits main lacks fails CI. Main has to bump VERSION once a release branch diverges.

  • VERSION as a trigger. A change to VERSION now rebuilds the client, so a bump publishes the new versioned directory immediately.

  • Storage. The two directories are full copies, not redirects, so deep links work. Git stores identical files once, so the copy costs no extra gh-pages repo storage.

Notes

  • release-tag.yml tags the release branch tip. Once the sync is disabled, the release branch has to be fast-forwarded by hand before tagging.

Test plan

  • SKIP=check-copyright-year pre-commit run --all-files
  • Ran the target logic against real refs. Main gives main release-1.7.x, synced release/1.7.x gives nothing, release/1.6.x gives release-1.6.x, and a tag gives itself.
  • After merge, check that client/main/ and client/release-1.7.x/ both update.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Release Management
    • Client builds are now published to the appropriate release channels for tags, main, and release branches.
    • Redundant web-app builds are skipped when a release matches the version already on main.
    • Publishing from main stops if its matching release branch contains commits not present on main.

Main now deploys the web client to both client/main/ and
client/release-<VERSION>/, so consumers of the latest release line keep
getting current builds without mirroring main into the release branch.

The release slot belongs to main until release/<VERSION> has commits
main lacks. A release push that main already covers (e.g. the sync
fast-forward) skips the web client build, and a main push whose VERSION
names a diverged release branch fails CI until VERSION is bumped.
VERSION changes now trigger a client rebuild.

Signed-off-by: Andrei Aristarkhov <aaristarkhov@nvidia.com>
@coderabbitai

coderabbitai Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: NVIDIA/IsaacCapture/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: 9ca1c03b-bd35-4d04-90c9-0c4a6dc20d42
📥 Commits

Reviewing files that changed from the base of the PR and between e07a2cc and def7504.

📒 Files selected for processing: 1
  • .github/workflows/docs.yaml

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.

📝 Walkthrough

The docs workflow now computes client deployment targets for tag, main, and release pushes. It checks branch ancestry and release versions to control web-app builds. The web-app path filter includes VERSION, and pushes without client targets skip the web-app build. Deployment receives the computed targets and copies the built client to each target.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant PushEvent
  participant ChangesJob
  participant WebAppBuild
  participant DeploymentStep
  PushEvent->>ChangesJob: Determine client targets and web-app changes
  ChangesJob->>WebAppBuild: Set build flag when targets and changes require a build
  WebAppBuild->>DeploymentStep: Provide built web app
  ChangesJob->>DeploymentStep: Pass client-targets output
  DeploymentStep->>DeploymentStep: Copy built web app to each target
Loading
Merge Risk: ⚪ Minimal · up to def75

The workflow is ready to merge after normal checks. Publication to both directories should still be confirmed after merge.

Pre-merge checks: Passed 5
Passed Passed checks: 5 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the primary change: publishing main's web client to its versioned release slot.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

This branch was successfully deployed

1 active deployment
dev — def75049 Deployed Oct 15, 2026 by aristarkhovNV via publish-wheel #5642
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants