Skip to content

ci: GitHub Actions pipeline for internal MotusLab releases - #1

Merged
ru-sh merged 1 commit into
mainfrom
ci/internal-release-pipeline
Sep 17, 2026
Merged

ru-sh merged 1 commit into
mainfrom
ci/internal-release-pipeline

Conversation

@ru-sh

@ru-sh ru-sh commented Sep 17, 2026

Copy link
Copy Markdown

Summary

  • CI (.github/workflows/ci.yml): every PR to main runs install (--frozen-lockfile), tests, lint (eslint src/), and a packaging smoke test; the produced .vsix is uploaded as a workflow artifact.
  • Release (.github/workflows/release.yml), using the built-in GITHUB_TOKEN (no secrets needed):
    • PR merge to main → prerelease v<version>-<PR#> (e.g. v0.2.2-123) with the version patched into the vsix, notes from the PR title/body.
    • vX.Y.Z tag push → stable release with tag↔package.json guard and CHANGELOG-derived notes.
    • Direct pushes to main without a PR: tests only, no release.
  • Identity for internal distribution: publisher motuslabs (extension ID motuslabs.openspec-workflow), displayName "OpenSpec (MotusLab)", repository.url → MotusLabs. Settings keys (openspec.*) unchanged; older randysss.openspec-workflow builds should be uninstalled.
  • Reproducibility: pnpm-lock.yaml committed, .nvmrc (Node 22) shared by local and CI.
  • Licensing: THIRD_PARTY_NOTICES.md (codicons CC-BY-4.0 attribution) now ships in the vsix; no license required an extension rename.
  • Packaging hygiene: .vscodeignore tightened — vsix shrinks 11.69 MB / 308 files → 2.08 MB / 81 files, no longer bundling .opencode/, .cursor/, .agents/, design docs, or transcripts.
  • Docs updated: CLAUDE.md, docs/PUBLISHING.md (internal release flow now primary), README.md, CHANGELOG.md.

Test plan

  • Local mirror of CI: frozen-lockfile install, 1017 tests pass, lint 0 errors, pnpm run package green
  • vsix manifest shows Publisher="motuslabs"; THIRD_PARTY_NOTICES.md included; contents trimmed
  • Workflow YAML parsed; CHANGELOG notes-extraction awk verified against the 0.2.2 section
  • This PR: CI workflow runs end-to-end
  • After merge: Release workflow publishes v0.2.2-<PR#> prerelease with vsix attached

🤖 Generated with Claude Code

- ci.yml: PR validation (test, lint, packaging smoke) with vsix artifact upload
- release.yml: PR-merge prereleases v<version>-<PR#> and stable vX.Y.Z tag
  releases, published to GitHub Releases with the vsix attached (GITHUB_TOKEN)
- Rebrand identity for internal distribution: publisher motuslabs,
  displayName "OpenSpec (MotusLab)", repository.url -> MotusLabs
- Commit pnpm-lock.yaml (frozen installs in CI), add .nvmrc (Node 22)
- Ship THIRD_PARTY_NOTICES.md (codicons CC-BY-4.0 attribution) in the vsix
- Trim .vscodeignore: vsix shrinks 11.69MB/308 files -> 2.08MB/81 files,
  no longer ships .opencode/.cursor/.agents/design docs/transcripts
- Update CLAUDE.md, PUBLISHING.md, README, CHANGELOG for the new flow

Co-Authored-By: Claude Code <noreply@anthropic.com>
@ru-sh
ru-sh merged commit 292c3a6 into main Sep 17, 2026
1 check passed
@ru-sh
ru-sh deleted the ci/internal-release-pipeline branch September 17, 2026 20:40
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