Skip to content

Harden publish-vsix job ahead of agentops-accelerator rename (#181)#185

Merged
Dongbumlee merged 1 commit into
developfrom
feature/release-yml-publish-vsix-hardening
May 28, 2026
Merged

Harden publish-vsix job ahead of agentops-accelerator rename (#181)#185
Dongbumlee merged 1 commit into
developfrom
feature/release-yml-publish-vsix-hardening

Conversation

@Dongbumlee
Copy link
Copy Markdown
Collaborator

@Dongbumlee Dongbumlee commented May 28, 2026

Refs #181. PR-1 of 3 in the agentops-toolkitagentops-accelerator rename 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-vsix job has three latent issues that would silently bite during the rename:

  1. publish-vsix and publish-pypi both needs: 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.
  2. The VSIX filename agentops-skills.vsix is hard-coded in ~5 places in this file — the rename would require five synchronized edits with no compile-time safety net.
  3. continue-on-error: true on the vsce publish step 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)

# Change Effect
1 publish-vsix: needs: buildneeds: [build, publish-pypi] VSIX publishes only after PyPI succeeds. Failed PyPI no longer strands a Marketplace artifact.
2 New job-level env: VSIX_FILE: agentops-skills.vsix; 3 substitutions in subsequent steps Single source of truth for the VSIX filename. PR-2 flips one value.
3 continue-on-error: true replaced with shell block that captures vsce publish output, greps -qi "already exists", exits 0 only in that case. VSCE_PAT moved from job-level to step-level env:. Real failures now fail the job. Only the intended idempotency case is tolerated. Grep string verified against microsoft/vscode-vsce src/publish.ts:231,247.
4 github-release.if gates on needs.publish-vsix.result == 'success' (in addition to existing conditions) A non-idempotent VSIX failure no longer publishes a release missing its VSIX asset.

Validation

  • Multi-Pass Coder + Critic (Correctness lens) — Critic returned 0 Critical / 0 Important / 0 Suggestions.
  • Shell-pattern safety verified: if OUTPUT=\$(cmd 2>&1); then RC=0; else RC=\$?; fi correctly captures exit code under default set -e -o pipefail (the if construct suspends set -e for the test command).
  • "already exists" grep substring verified against actual vscode-vsce source.
  • YAML syntactically valid (python3 -c "import yaml; yaml.safe_load(open('.github/workflows/release.yml'))").
  • No behavior change for the happy path of an ordinary release.

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>
@Dongbumlee Dongbumlee merged commit 711b0a0 into develop May 28, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant