Skip to content

Commit 4bee768

Browse files
committed
fix: initial release with complete automation
- Set up release-please workflow for automated releases - Configure CD workflow for build and attestation - Use patch versioning only (no minor bumps) - Add PR title validation with PAT token - Configure attestations and SBOM generation - Add DCO support for release-please commits
1 parent 2ae3771 commit 4bee768

File tree

6 files changed

+55
-60
lines changed

6 files changed

+55
-60
lines changed

.github/release-please-config.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
"package-name": "@trogonstack/aipm",
55
"release-type": "node",
66
"changelog-path": "CHANGELOG.md",
7-
"bump-minor-pre-major": true,
8-
"bump-patch-for-minor-pre-major": true,
7+
"bump-minor-pre-major": false,
8+
"bump-patch-for-minor-pre-major": false,
99
"extra-files": ["package.json"],
1010
"changelog-sections": [
1111
{ "type": "feat", "section": "Features", "hidden": false },
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.1.0"
2+
".": "0.4.0"
33
}

.github/workflows/cd.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: CD
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
permissions:
8+
contents: write
9+
attestations: write
10+
id-token: write
11+
12+
jobs:
13+
build-and-upload:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- uses: oven-sh/setup-bun@v2
19+
20+
- name: Install dependencies
21+
run: bun install
22+
23+
- name: Build all platforms
24+
run: bun run build:all
25+
26+
- name: Generate artifact attestations
27+
uses: actions/attest-build-provenance@v2
28+
with:
29+
subject-path: dist/*
30+
31+
- name: Generate SBOM
32+
uses: anchore/sbom-action@v0
33+
with:
34+
path: ./
35+
artifact-name: sbom-spdx.json
36+
output-file: ./sbom-spdx.json
37+
38+
- name: Attest SBOM
39+
uses: actions/attest-sbom@v2
40+
with:
41+
subject-path: 'dist/*'
42+
sbom-path: './sbom-spdx.json'
43+
44+
- name: Upload release artifacts
45+
uses: softprops/action-gh-release@v1
46+
with:
47+
files: |
48+
dist/*
49+
sbom-spdx.json

.github/workflows/pr-title.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
steps:
1818
- uses: amannn/action-semantic-pull-request@v5.4.0
1919
env:
20-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
20+
GITHUB_TOKEN: ${{ secrets.GH_PAT_RELEASE_PLEASE_ACTION }}
2121
with:
2222
types: |
2323
feat

.github/workflows/release-please.yml

Lines changed: 1 addition & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -8,67 +8,13 @@ on:
88
permissions:
99
contents: write
1010
pull-requests: write
11-
attestations: write
12-
id-token: write
1311

1412
jobs:
1513
release-please:
1614
runs-on: ubuntu-latest
17-
outputs:
18-
release_created: ${{ steps.release.outputs.release_created }}
19-
tag_name: ${{ steps.release.outputs.tag_name }}
2015
steps:
2116
- uses: googleapis/release-please-action@v4
22-
id: release
2317
with:
24-
token: ${{ secrets.GH_PAT_RELEASE_PLEASE_ACTION }}
2518
config-file: .github/release-please-config.json
2619
manifest-file: .github/release-please-manifest.json
27-
skip-github-release: true
28-
29-
build-and-upload:
30-
needs: release-please
31-
if: ${{ needs.release-please.outputs.release_created }}
32-
runs-on: ubuntu-latest
33-
steps:
34-
- uses: actions/checkout@v4
35-
36-
- uses: oven-sh/setup-bun@v2
37-
38-
- name: Install dependencies
39-
run: bun install
40-
41-
- name: Build all platforms
42-
run: bun run build:all
43-
44-
- name: Generate artifact attestations
45-
uses: actions/attest-build-provenance@v2
46-
with:
47-
subject-path: dist/*
48-
49-
- name: Generate SBOM
50-
uses: anchore/sbom-action@v0
51-
with:
52-
path: ./
53-
artifact-name: sbom-spdx.json
54-
output-file: ./sbom-spdx.json
55-
56-
- name: Attest SBOM
57-
uses: actions/attest-sbom@v2
58-
with:
59-
subject-path: 'dist/*'
60-
sbom-path: './sbom-spdx.json'
61-
62-
- name: Create release with all artifacts at once
63-
env:
64-
GH_TOKEN: ${{ github.token }}
65-
run: |
66-
TAG="${{ needs.release-please.outputs.tag_name }}"
67-
68-
# Create release with all artifacts at once (compatible with immutable releases)
69-
gh release create "$TAG" \
70-
--title "$TAG" \
71-
--notes "See [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/$TAG/CHANGELOG.md) for details" \
72-
--verify-tag \
73-
dist/* \
74-
sbom-spdx.json
20+
token: ${{ secrets.GH_PAT_RELEASE_PLEASE_ACTION }}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@trogonstack/aipm",
3-
"version": "0.1.0",
3+
"version": "0.4.0",
44
"description": "AI Plugin Manager - Plugin manager for AI coding assistants (Claude Code, Cursor, and more). Sync plugins from multiple marketplaces.",
55
"type": "module",
66
"homepage": "https://github.com/TrogonStack/aipm",

0 commit comments

Comments
 (0)