Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
8e9a0b2
ci: adopt release-please for monorepo releases
SnowboardTechie Jul 30, 2026
ac57329
docs: update release process docs and supersede ADR 0010
SnowboardTechie Jul 30, 2026
b62d176
Merge branch 'main' into 870-adopt-release-please
SnowboardTechie Jul 30, 2026
92f7d53
Merge remote-tracking branch 'origin/main' into 870-adopt-release-please
SnowboardTechie Aug 3, 2026
ac87b6e
ci: validate PR titles inline and align accepted types with release s…
SnowboardTechie Aug 3, 2026
d16894c
review: address correctness, security, type-design, and test-coverage…
SnowboardTechie Aug 3, 2026
17ddcda
review: address security and correctness findings
SnowboardTechie Aug 3, 2026
06cf608
review: close branch/tag ambiguity in the deploy checkout
SnowboardTechie Aug 3, 2026
27d7e38
review: validate the release tag before checkout
SnowboardTechie Aug 3, 2026
79e705f
Merge branch 'main' into 870-adopt-release-please
SnowboardTechie Aug 3, 2026
1217e82
review: pin python __version__, scope publish secrets, fix emitter note
SnowboardTechie Aug 4, 2026
408d2e9
ci: supersede stale PR-title lint runs
SnowboardTechie Aug 4, 2026
62afd4d
Merge branch 'main' into 870-adopt-release-please
SnowboardTechie Aug 4, 2026
2180759
Merge remote-tracking branch 'origin/main' into 870-adopt-release-please
SnowboardTechie Aug 5, 2026
27fcee1
Merge branch 'main' into 870-adopt-release-please
SnowboardTechie Aug 5, 2026
04d97c6
ci: sync release-please manifest to the released versions
SnowboardTechie Aug 5, 2026
7ac89f4
ci: remove the unreleased-tag check made obsolete by release-please
SnowboardTechie Aug 5, 2026
7da2413
docs: clarify release path scoping, cross-package PRs, and the revert…
SnowboardTechie Aug 5, 2026
c6a824c
Merge remote-tracking branch 'origin/main' into 870-adopt-release-please
SnowboardTechie Aug 5, 2026
60f176c
ci: sync release baselines to the 0.7.1 / 0.8.1 release
SnowboardTechie Aug 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions .changeset/README.md

This file was deleted.

19 changes: 0 additions & 19 deletions .changeset/config.json

This file was deleted.

5 changes: 0 additions & 5 deletions .github/release-config/lib-cli.yml

This file was deleted.

5 changes: 0 additions & 5 deletions .github/release-config/lib-core.yml

This file was deleted.

5 changes: 0 additions & 5 deletions .github/release-config/lib-pysdk.yml

This file was deleted.

6 changes: 0 additions & 6 deletions .github/release-config/lib-ts-sdk.yml

This file was deleted.

81 changes: 0 additions & 81 deletions .github/scripts/check-for-unreleased-tags.sh

This file was deleted.

124 changes: 0 additions & 124 deletions .github/scripts/validate-and-generate-release-notes.sh

This file was deleted.

82 changes: 32 additions & 50 deletions .github/workflows/cd-deploy-lib-cli.yml
Original file line number Diff line number Diff line change
@@ -1,78 +1,58 @@
name: "CD - Deploy CLI Package to npm"

on:
workflow_dispatch:
# Called by release-please.yml when a CLI release is created
workflow_call:
inputs:
release_tag:
description: "Release tag (e.g., @common-grants/cli@0.2.0)"
required: true
type: string
previous_tag:
description: "Previous tag (e.g., @common-grants/cli@0.1.0) - optional"
required: false
secrets:
NPM_TOKEN:
required: true
# Manual fallback for re-running a publish against an existing tag
workflow_dispatch:
inputs:
release_tag:
description: "Release tag (e.g., @common-grants/cli@0.2.0)"
required: true
type: string
dry_run:
description: "Dry run mode (default: false) - set to true to preview the release notes"
required: false
type: boolean
default: false

jobs:
create-release-from-tag:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Validate tags and generate release notes
id: release-notes
run: |
DRY_RUN_FLAG=""
if [ "${{ github.event.inputs.dry_run }}" == "true" ]; then
DRY_RUN_FLAG="--dry-run"
fi
.github/scripts/validate-and-generate-release-notes.sh \
--prefix "@common-grants/cli@" \
--config-file ".github/release-config/lib-cli.yml" \
--release-tag "${{ github.event.inputs.release_tag }}" \
--previous-tag "${{ github.event.inputs.previous_tag }}" \
--repository "${{ github.repository }}" \
$DRY_RUN_FLAG
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Create release
if: github.event.inputs.dry_run != 'true'
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ github.event.inputs.release_tag }}
body: ${{ steps.release-notes.outputs.notes }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

deploy:
needs: create-release-from-tag
if: github.event.inputs.dry_run != 'true'
runs-on: ubuntu-latest
environment:
name: npm-cli
url: https://www.npmjs.com/package/@common-grants/cli
permissions:
contents: read
id-token: write
defaults:
run:
working-directory: ./lib/cli

steps:
# Rejects another package's tag or a malformed version on the manual
# workflow_dispatch fallback; release-please's own tag always passes.
# Runs before checkout (in the bare workspace) so nothing ever touches
# content from an unvalidated ref.
- name: Validate release tag
working-directory: .
env:
RELEASE_TAG: ${{ inputs.release_tag }}
run: |
if [[ ! "$RELEASE_TAG" =~ ^@common-grants/cli@[0-9]+\.[0-9]+\.[0-9]+([-+][0-9A-Za-z.+-]+)?$ ]]; then
echo "::error::release_tag must look like '@common-grants/cli@X.Y.Z'. Got: $RELEASE_TAG"
exit 1
fi

# The refs/tags/ qualifier pins the checkout to the tag namespace — a
# branch with the same name can't be substituted, and a nonexistent tag
# fails the checkout outright.
- name: Checkout code
uses: actions/checkout@v6
with:
ref: ${{ github.event.inputs.release_tag }}
ref: refs/tags/${{ inputs.release_tag }}

# Setup .npmrc file to publish to npm
- name: Install Node.js
Expand All @@ -96,6 +76,8 @@ jobs:
run: pnpm publish --access public --no-git-checks

- name: Notify completion
env:
RELEASE_TAG: ${{ inputs.release_tag }}
run: |
echo "CLI package deployed to npm"
echo "Tag: ${{ github.event.inputs.release_tag }}"
echo "Tag: $RELEASE_TAG"
Loading
Loading