Skip to content

Commit 0aff322

Browse files
authored
chore(ci): setup packages release action (#109)
1 parent 4428039 commit 0aff322

File tree

5 files changed

+165
-4
lines changed

5 files changed

+165
-4
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: Release Please
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
workflow_dispatch:
8+
inputs:
9+
publish:
10+
description: 'Publish packages to NPM'
11+
type: boolean
12+
default: false
13+
14+
permissions:
15+
contents: write
16+
pull-requests: write
17+
18+
jobs:
19+
release-please:
20+
runs-on: ubuntu-latest
21+
outputs:
22+
releases_created: ${{ steps.release.outputs.releases_created }}
23+
steps:
24+
- name: Generate GitHub App Token
25+
id: generate_token
26+
uses: actions/create-github-app-token@v1
27+
with:
28+
app-id: ${{ secrets.ECOSPARK_APP_ID }}
29+
private-key: ${{ secrets.ECOSPARK_APP_PRIVATE_KEY }}
30+
31+
- name: Run release-please
32+
id: release
33+
uses: googleapis/release-please-action@v4
34+
with:
35+
token: ${{ steps.generate_token.outputs.token }}
36+
37+
- name: Checkout
38+
if: ${{ steps.release.outputs.releases_created == 'true' || github.event.inputs.publish == 'true' }}
39+
uses: actions/checkout@v4
40+
41+
- name: Setup Environment
42+
if: ${{ steps.release.outputs.releases_created == 'true' || github.event.inputs.publish == 'true' }}
43+
uses: ./.github/actions/setup
44+
with:
45+
node-version: '20'
46+
47+
- name: Build packages
48+
if: ${{ steps.release.outputs.releases_created == 'true' || github.event.inputs.publish == 'true' }}
49+
run: pnpm run build
50+
51+
- name: Build types
52+
if: ${{ steps.release.outputs.releases_created == 'true' || github.event.inputs.publish == 'true' }}
53+
run: pnpm run build:types
54+
55+
- name: Set publishing config
56+
if: ${{ steps.release.outputs.releases_created == 'true' || github.event.inputs.publish == 'true' }}
57+
run: pnpm config set '//registry.npmjs.org/:_authToken' "${NODE_AUTH_TOKEN}"
58+
env:
59+
NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
60+
61+
- name: Publish packages
62+
if: ${{ steps.release.outputs.releases_created == 'true' || github.event.inputs.publish == 'true' }}
63+
run: pnpm publish -r --filter="@sanity/cli*"
64+
65+
- name: Summary
66+
if: ${{ steps.release.outputs.releases_created == 'true' || github.event.inputs.publish == 'true' }}
67+
run: |
68+
echo "## Published Packages 🚀" >> $GITHUB_STEP_SUMMARY
69+
echo "All CLI packages published:" >> $GITHUB_STEP_SUMMARY
70+
echo "- @sanity/cli" >> $GITHUB_STEP_SUMMARY
71+
echo "- @sanity/cli-core" >> $GITHUB_STEP_SUMMARY
72+
echo "- @sanity/cli-test" >> $GITHUB_STEP_SUMMARY

.release-please-manifest.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"packages/@sanity/cli-core": "0.0.0-alpha.0",
3+
"packages/@sanity/cli-test": "0.0.0-alpha.0"
4+
}

packages/@sanity/cli-core/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"name": "@sanity/cli-core",
3-
"version": "0.0.0",
4-
"private": true,
3+
"version": "0.0.0-alpha.0",
54
"description": "Sanity CLI core package",
65
"keywords": [
76
"sanity",
@@ -75,5 +74,8 @@
7574
},
7675
"engines": {
7776
"node": ">=20.19.1 <22 || >=22.12"
77+
},
78+
"publishConfig": {
79+
"access": "public"
7880
}
7981
}

packages/@sanity/cli-test/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"name": "@sanity/cli-test",
3-
"version": "0.0.0",
4-
"private": true,
3+
"version": "0.0.0-alpha.0",
54
"description": "Sanity CLI test helpers and utilities",
65
"keywords": [
76
"sanity",
@@ -61,5 +60,8 @@
6160
},
6261
"engines": {
6362
"node": ">=20.19.1 <22 || >=22.12"
63+
},
64+
"publishConfig": {
65+
"access": "public"
6466
}
6567
}

release-please-config.json

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
3+
"changelog-sections": [
4+
{
5+
"section": "Features",
6+
"type": "feat"
7+
},
8+
{
9+
"section": "Bug Fixes",
10+
"type": "fix"
11+
},
12+
{
13+
"section": "Performance Improvements",
14+
"type": "perf"
15+
},
16+
{
17+
"section": "Reverts",
18+
"type": "revert"
19+
},
20+
{
21+
"section": "Documentation",
22+
"type": "docs"
23+
},
24+
{
25+
"hidden": true,
26+
"section": "Styles",
27+
"type": "style"
28+
},
29+
{
30+
"hidden": true,
31+
"section": "Miscellaneous Chores",
32+
"type": "chore"
33+
},
34+
{
35+
"hidden": true,
36+
"section": "Code Refactoring",
37+
"type": "refactor"
38+
},
39+
{
40+
"hidden": true,
41+
"section": "Tests",
42+
"type": "test"
43+
},
44+
{
45+
"hidden": true,
46+
"section": "Build System",
47+
"type": "build"
48+
},
49+
{
50+
"hidden": true,
51+
"section": "Continuous Integration",
52+
"type": "ci"
53+
}
54+
],
55+
"packages": {
56+
"packages/@sanity/cli-core": {
57+
"bump-minor-pre-major": true,
58+
"bump-patch-for-minor-pre-major": true,
59+
"component": "cli-core",
60+
"prerelease": true,
61+
"prerelease-type": "alpha",
62+
"release-type": "node"
63+
},
64+
"packages/@sanity/cli-test": {
65+
"bump-minor-pre-major": true,
66+
"bump-patch-for-minor-pre-major": true,
67+
"component": "cli-test",
68+
"prerelease": true,
69+
"prerelease-type": "alpha",
70+
"release-type": "node"
71+
}
72+
},
73+
"plugins": [
74+
{
75+
"type": "node-workspace",
76+
"updateAllPackages": false
77+
}
78+
],
79+
"prerelease": true,
80+
"release-type": "node"
81+
}

0 commit comments

Comments
 (0)