Harden publish-vsix job ahead of agentops-accelerator rename (#181)#185
Merged
Merged
Conversation
Prepare release.yml so the upcoming agentops-toolkit → agentops-accelerator rename can publish through a single tag-driven release without VSIX/PyPI ordering surprises or silent VSIX publish failures. - publish-vsix now needs [build, publish-pypi] so a failed PyPI no longer leaves a stranded Marketplace artifact pointing at a missing distribution. - Hoist VSIX filename to a job-level env var (VSIX_FILE); the rename now flips one value instead of grepping ~5 places. - Narrow continue-on-error to the 'already exists' idempotency case only. Capture output, grep -i for 'already exists' (verified against vscode-vsce src/publish.ts:231,247), and exit 0 only for that case. Other failures (auth, network, schema) now fail the job. Move VSCE_PAT to step-level env. - Gate github-release on publish-vsix.result == 'success' so a real (non- idempotent) VSIX publish failure no longer produces a GitHub Release that silently lacks the VSIX asset. Refs #181 (PR-1 of 3-PR rebrand strategy). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
15 tasks
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.
Refs #181. PR-1 of 3 in the
agentops-toolkit→agentops-acceleratorrename strategy. No rename in this PR — purely workflow hardening so the eventual rename can ship through a single tag-driven release without surprises.Why this lands first
PR-2 will atomically rename the PyPI distribution and the VS Code extension publisher/name. The current
publish-vsixjob has three latent issues that would silently bite during the rename:publish-vsixandpublish-pypibothneeds: build(independent) — a failed PyPI publish would still ship the VSIX, leaving the Marketplace listing pointing at a distribution name that does not exist on PyPI.agentops-skills.vsixis hard-coded in ~5 places in this file — the rename would require five synchronized edits with no compile-time safety net.continue-on-error: trueon thevsce publishstep swallows every failure (auth, network, schema) — not just the idempotent "already exists" case it was intended for. A real publish failure would still produce a GitHub Release that quietly lacks the VSIX asset.Changes (all scoped to
.github/workflows/release.yml, +26/-7)publish-vsix: needs: build→needs: [build, publish-pypi]env: VSIX_FILE: agentops-skills.vsix; 3 substitutions in subsequent stepscontinue-on-error: truereplaced with shell block that capturesvsce publishoutput, greps-qi "already exists", exits 0 only in that case.VSCE_PATmoved from job-level to step-levelenv:.microsoft/vscode-vscesrc/publish.ts:231,247.github-release.ifgates onneeds.publish-vsix.result == 'success'(in addition to existing conditions)Validation
if OUTPUT=\$(cmd 2>&1); then RC=0; else RC=\$?; ficorrectly captures exit code under defaultset -e -o pipefail(theifconstruct suspendsset -efor the test command).python3 -c "import yaml; yaml.safe_load(open('.github/workflows/release.yml'))").