Conversation
Agent-Logs-Url: https://github.com/rockcarver/frodo-cli/sessions/bffe9455-7b9b-4c6a-be31-736a197a8347 Co-authored-by: vscheuber <28791378+vscheuber@users.noreply.github.com>
Agent-Logs-Url: https://github.com/rockcarver/frodo-cli/sessions/bffe9455-7b9b-4c6a-be31-736a197a8347 Co-authored-by: vscheuber <28791378+vscheuber@users.noreply.github.com>
| newTag: ${{ steps.version-bump.outputs.newTag }} | ||
| newVersion: ${{ steps.version-from-tag.outputs.version }} | ||
| preRelease: ${{ contains(steps.version-bump.outputs.newTag, '-') }} | ||
| newVersion: ${{ steps.version-bump.outputs.newVersion }} |
There was a problem hiding this comment.
step "version-bump" is removed in this PR and replaced with "release-bump". Should this line change accordingly?
There was a problem hiding this comment.
No change is required here. steps.version-bump.outputs.* is correct because the version-bump step still exists and is the step that sets newTag, newVersion, and preRelease. release-bump only computes bumpType.
| newVersion: ${{ steps.version-from-tag.outputs.version }} | ||
| preRelease: ${{ contains(steps.version-bump.outputs.newTag, '-') }} | ||
| newVersion: ${{ steps.version-bump.outputs.newVersion }} | ||
| preRelease: ${{ steps.version-bump.outputs.preRelease }} |
There was a problem hiding this comment.
step "version-bump" is removed in this PR and replaced with "release-bump". Should this line change accordingly?
There was a problem hiding this comment.
No update needed on this line. The outputs are produced by id: version-bump, so steps.version-bump.outputs.newVersion is the correct reference. release-bump only provides the intermediate bump type.
| dist | ||
|
|
||
| outputs: | ||
| newTag: ${{ steps.version-bump.outputs.newTag }} |
There was a problem hiding this comment.
@copilot step "version-bump" is removed in this PR and replaced with "release-bump". Should this line change accordingly?
There was a problem hiding this comment.
Checked this path end-to-end: keeping steps.version-bump.outputs.* is intentional and correct. The release-bump step determines label-based bump type; the version-bump step applies it and emits the final outputs.
I reviewed the comment threads and verified the workflow lines in question. No code changes are required for those references: |
I re-reviewed all related comments and the workflow file. No code change is needed: |
This updates the release and integration automation to use deterministic PR metadata instead of trigger phrases. Release bumping now keys off merged PR labels on
pushtomain, and a new integration batching workflow assembles ready PRs intointegrationwith clear success/failure labeling and optional dry-run execution.Release pipeline: PR-label-driven semver bumping
gh-action-bump-versionlogic in.github/workflows/pipeline.yml.maincommit:release:patch/release:minor/release:majorprereleasewhen none is presentrelease:*labelsnewTag,newVersion,preReleasenext; stable releases publish normally then getnextdist-tagNew workflow: integration batching
.github/workflows/integration-batch.yml.integration-batch, excludes drafts and PRs already labeledintegrated.success.integrationfrommainevery run, then merges selected PRs usinggit merge --no-ff.integration-batchintegration-failed(if present)integratedintegration-batchintegration-failed@rockcarver/frodo-libto@nextand commits lockfile updates.integrationand creates/updatesintegration -> mainPR titledintegration.Dry-run mode
workflow_dispatchinputdry_run(defaultfalse) to integration batching.dry_run=true, workflow still computes selection and attempts local merges, but skips:Documentation updates
docs/PIPELINE.mdto describe label-based release selection and explicit failure modes (direct push/no PR, ambiguous PR mapping, conflicting release labels).docs/CONTRIBUTE.md(Node version guidance + integration workflow link).docs/INTEGRATION.mdwith label semantics, selection criteria, merge outcomes, and dry-run behavior.Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
https://api.github.com/repos/rockcarver/frodo-cli/releases/opt/hostedtoolcache/node/24.14.1/x64/bin/node /opt/hostedtoolcache/node/24.14.1/x64/bin/node --no-warnings --enable-source-maps --experimental-loader file:///home/REDACTED/work/frodo-cli/frodo-cli/dist/loader.cjs /home/REDACTED/work/frodo-cli/frodo-cli/dist/app.cjs shell cal/bin/git orts/all(http block)/opt/hostedtoolcache/node/24.14.1/x64/bin/node /opt/hostedtoolcache/node/24.14.1/x64/bin/node --no-warnings --enable-source-maps --experimental-loader file:///home/REDACTED/work/frodo-cli/frodo-cli/dist/loader.cjs /home/REDACTED/work/frodo-cli/frodo-cli/dist/app.cjs shell nfig/composer/vendor/bin/git --depth 2 REDACTED authn describe --json git conf�� 5db-89bb08a2ab56 --file test/e2e/exports/all/allInternalRoles.internalRole.json --global rgo/bin/sh committer.email(http block)/opt/hostedtoolcache/node/24.14.1/x64/bin/node /opt/hostedtoolcache/node/24.14.1/x64/bin/node --no-warnings --enable-source-maps --experimental-loader file:///home/REDACTED/work/frodo-cli/frodo-cli/dist/loader.cjs /home/REDACTED/work/frodo-cli/frodo-cli/dist/app.cjs shell k/frodo-cli/frodo-cli/.git/copilot-hooks user.name(http block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
Implement label-driven release bumping and integration batching workflow in
rockcarver/frodo-cli.Requirements:
.github/workflows/pipeline.ymlusesphips28/gh-action-bump-versionwith wording triggers (PATCH RELEASE,MINOR RELEASE,MAJOR RELEASE) and defaults to prerelease.pushtomain(release path): determine bump type from the PR associated with the pushed commit SHA.release:patch,release:minor,release:majorprereleasemainresults in a prerelease by default.newTag,newVersion,preRelease). Preserve existing release steps behavior: prereleases publish to npm tagnext, stable releases publish to default and then addnexttag..github/workflows/integration-batch.ymlimplementing:integration-batch, excluding drafts and excluding PRs already labeledintegrated.success.integrationbranch frommaineach run.git merge --no-ff).integration-batch, removeintegration-failedif present, addintegrated, and comment with run URL.integration-batch, addintegration-failed, and comment with instructions to rebase and re-addintegration-batch.@rockcarver/frodo-libto@nextand commit lockfile changes.integrationbranch and create/update a PRintegration -> maintitledintegration.workflow_dispatchinputdry_run(default false). If dry_run true, do not push integration branch, do not create/update the integration PR, and do not edit labels/comments on PRs (but still compute selection and attempt merges locally).docs/PIPELINE.mdto reflect label-based release selection (remove trigger phrase guidance), note failure on direct pushes to main (no PR) or ambiguous PR association.docs/CONTRIBUTE.mdfor accuracy (Node versions, commands, etc.) and add documentation for the new integration workflow. Consider adding a newdocs/INTEGRATION.mdand linking it from CONTRIBUTE.md.Notes:
rockcarver/frodo-climainThe following is the prior conversation context from the user's chat exploration (may be truncated):
User: if we remove the batch label after merging into integration, wouldn't that remove all indication on the PR itself that it was merged into integration? Maybe we should, as you suggested, remove the batch label and add an
integratedlabel upon successful merge into integration and anintegration-failedlabel in case of a merge failure?Assistant: Yes—that’s the right way to do it.
batchafter a PR is successfully merged intointegrationso it doesn’t get re-picked every run.integratedto leave a durable signal on the PR itself.integration-failed(and optionally keep/removebatchdepending on whether you want it to retry automatically).Suggested label semantics
batch: “please attempt to include this PR in the next integration build”integrated: “this PR’s changes are currently present in the integration branch”integration-failed: “automation tried to integrate but could not (likely conflicts)”Policy recommendation: on merge conflict
batch(so it doesn’t fail every run)integration-failedbatchThat keeps the integration runs clean and makes the PR author action explicit.
Workflow changes (what to edit)
In the “Merge selected PRs; skip conflicts and comment” step, after a successful merge, add:
gh pr edit <PR> --remove-label batch --add-label integratedOn merge failure, add:
gh pr edit <PR> --remove-label batch --add-label integration-failedAlso, it’s worth removing
integration-failedwhen a PR later integrates successfully (so labels reflect current state).Drop-in patch for that step
Replace the merge step in the workflow with this version: