Skip to content

Commit 6d07f71

Browse files
committed
chore(ci): move to release-please
1 parent a0a94fa commit 6d07f71

File tree

5 files changed

+65
-1149
lines changed

5 files changed

+65
-1149
lines changed

.github/workflows/format-if-needed.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- run: corepack enable && pnpm --version
2525
- run: pnpm install --ignore-scripts
2626
- run: pnpm format
27-
- run: git restore .github/workflows
27+
- run: git restore .github/workflows CHANGELOG.md
2828
- uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a # v2
2929
id: generate-token
3030
with:

.github/workflows/main.yml

+1-44
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
1-
name: CI & Release
1+
name: CI
22

33
on:
44
push:
55
branches:
6-
- alpha
7-
- beta
86
- main
97
pull_request:
108
branches:
11-
- alpha
12-
- beta
139
- main
1410

1511
concurrency:
@@ -53,42 +49,3 @@ jobs:
5349
- run: corepack enable && pnpm --version
5450
- run: pnpm install
5551
- run: pnpm test
56-
57-
release:
58-
permissions:
59-
contents: write # to be able to publish a GitHub release
60-
issues: write # to be able to comment on released issues
61-
pull-requests: write # to be able to comment on released pull requests
62-
id-token: write # to enable use of OIDC for npm provenance
63-
name: 'Semantic release'
64-
needs: [build, test]
65-
runs-on: ubuntu-latest
66-
steps:
67-
- uses: actions/checkout@v4
68-
with:
69-
# Need to fetch entire commit history to
70-
# analyze every commit since last release
71-
fetch-depth: 0
72-
- uses: actions/setup-node@v3
73-
with:
74-
node-version: lts/*
75-
- run: corepack enable && pnpm --version
76-
- run: pnpm install
77-
# Branches that will release new versions are defined in .releaserc.json
78-
- run: pnpm exec semantic-release
79-
env:
80-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
81-
NPM_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
82-
# Build docs
83-
- run: npm run docs:build
84-
# Deploy docs
85-
- uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a # v2
86-
id: generate-token
87-
with:
88-
app_id: ${{ secrets.ECOSCRIPT_APP_ID }}
89-
private_key: ${{ secrets.ECOSCRIPT_APP_PRIVATE_KEY }}
90-
- uses: peaceiris/actions-gh-pages@373f7f263a76c20808c831209c920827a82a2847 # v3
91-
if: ${{ github.ref == 'refs/heads/main' }}
92-
with:
93-
github_token: ${{ steps.generate-token.outputs.token }}
94-
publish_dir: ./docs

.github/workflows/release-please.yml

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
name: Release Please
3+
4+
on:
5+
push:
6+
branches:
7+
- main
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
release-please:
14+
permissions:
15+
id-token: write # to enable use of OIDC for npm provenance
16+
# permissions for pushing commits and opening PRs are handled by the `generate-token` step
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a # v2
20+
id: generate-token
21+
with:
22+
app_id: ${{ secrets.ECOSCRIPT_APP_ID }}
23+
private_key: ${{ secrets.ECOSCRIPT_APP_PRIVATE_KEY }}
24+
# This action will create a release PR when regular conventional commits are pushed to main, it'll also detect if a release PR is merged and npm publish should happen
25+
- uses: google-github-actions/release-please-action@v3
26+
id: release
27+
with:
28+
release-type: node
29+
token: ${{ steps.generate-token.outputs.token }}
30+
31+
# Publish to NPM on new releases
32+
- uses: actions/checkout@v4
33+
if: ${{ steps.release.outputs.releases_created }}
34+
- uses: pnpm/action-setup@v2
35+
if: ${{ steps.release.outputs.releases_created }}
36+
- uses: actions/setup-node@v3
37+
if: ${{ steps.release.outputs.releases_created }}
38+
with:
39+
cache: pnpm
40+
node-version: lts/*
41+
registry-url: 'https://registry.npmjs.org'
42+
- run: corepack enable && pnpm --version && pnpm install --ignore-scripts
43+
if: ${{ steps.release.outputs.releases_created }}
44+
- name: Set publishing config
45+
run: pnpm config set '//registry.npmjs.org/:_authToken' "${NODE_AUTH_TOKEN}"
46+
if: ${{ steps.release.outputs.releases_created }}
47+
env:
48+
NODE_AUTH_TOKEN: ${{secrets.NPM_PUBLISH_TOKEN}}
49+
# Release Please has already incremented versions and published tags, so we just
50+
# need to publish the new version to npm here
51+
- run: pnpm publish
52+
if: ${{ steps.release.outputs.releases_created }}
53+
env:
54+
NPM_CONFIG_PROVENANCE: true
55+
# Publish to GitHub Pages
56+
- run: pnpm docs:build
57+
if: ${{ steps.release.outputs.releases_created }}
58+
- uses: peaceiris/actions-gh-pages@373f7f263a76c20808c831209c920827a82a2847 # v3
59+
if: ${{ steps.release.outputs.releases_created }}
60+
with:
61+
github_token: ${{ steps.generate-token.outputs.token }}
62+
publish_dir: ./docs

package.json

+1-19
Original file line numberDiff line numberDiff line change
@@ -90,21 +90,6 @@
9090
"dist/**/"
9191
]
9292
},
93-
"release": {
94-
"branches": [
95-
"+([0-9])?(.{+([0-9]),x}).x",
96-
"main",
97-
{
98-
"name": "beta",
99-
"prerelease": true
100-
},
101-
{
102-
"name": "alpha",
103-
"prerelease": true
104-
}
105-
],
106-
"extends": "@sanity/semantic-release-preset"
107-
},
10893
"tap": {
10994
"check-coverage": false,
11095
"node-arg": [
@@ -122,7 +107,6 @@
122107
"@commitlint/cli": "^17.7.1",
123108
"@commitlint/config-conventional": "^17.7.0",
124109
"@sanity/pkg-utils": "^2.4.9",
125-
"@sanity/semantic-release-preset": "^4.1.4",
126110
"@types/tap": "^15.0.9",
127111
"@typescript-eslint/eslint-plugin": "^6.7.3",
128112
"@typescript-eslint/parser": "^6.7.3",
@@ -138,7 +122,6 @@
138122
"prettier": "^3.0.3",
139123
"prettier-plugin-packagejson": "^2.4.5",
140124
"rimraf": "^4.4.1",
141-
"semantic-release": "^21.1.2",
142125
"tap": "^16.3.9",
143126
"typedoc": "^0.25.1",
144127
"typescript": "^5.2.2"
@@ -148,7 +131,6 @@
148131
"node": "^14.13.1 || >=16.0.0"
149132
},
150133
"publishConfig": {
151-
"access": "public",
152-
"provenance": true
134+
"access": "public"
153135
}
154136
}

0 commit comments

Comments
 (0)