Skip to content

Commit 7c4f9b6

Browse files
committed
ci: fix release pipeline - chain publish after release-please
- Chain npm publish directly in release-please workflow (GITHUB_TOKEN events don't trigger other workflows) - Add release script with safety checks - Gate release-please on CI success - Include README in publish - Use bun runtime for example scripts
1 parent cd01495 commit 7c4f9b6

5 files changed

Lines changed: 320 additions & 63 deletions

File tree

.github/workflows/ci.yml

Lines changed: 1 addition & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ on:
88
workflow_dispatch:
99

1010
permissions:
11-
contents: write
12-
pull-requests: write
11+
contents: read
1312

1413
jobs:
1514
test:
@@ -43,58 +42,3 @@ jobs:
4342

4443
- name: Build
4544
run: bun run build
46-
47-
release-please:
48-
name: Release Please
49-
needs: test
50-
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
51-
runs-on: ubuntu-latest
52-
outputs:
53-
release_created: ${{ steps.release.outputs.release_created }}
54-
steps:
55-
- uses: googleapis/release-please-action@v4
56-
id: release
57-
with:
58-
token: ${{ secrets.GITHUB_TOKEN }}
59-
config-file: release-please-config.json
60-
manifest-file: .release-please-manifest.json
61-
target-branch: main
62-
63-
publish:
64-
name: Publish to npm
65-
needs: release-please
66-
if: needs.release-please.outputs.release_created == 'true'
67-
runs-on: ubuntu-latest
68-
permissions:
69-
contents: read
70-
id-token: write
71-
steps:
72-
- uses: actions/checkout@v4
73-
74-
- name: Setup Bun
75-
uses: oven-sh/setup-bun@v1
76-
with:
77-
bun-version: latest
78-
79-
- name: Install dependencies
80-
run: bun install --frozen-lockfile
81-
82-
- name: Build workspace dependencies
83-
run: bun run build
84-
working-directory: packages/pg-introspection
85-
86-
- name: Build pg-sourcerer
87-
run: bun run build
88-
working-directory: packages/pg-sourcerer
89-
90-
- name: Publish pg-introspection to npm
91-
working-directory: packages/pg-introspection
92-
run: bun publish --access public --tolerate-republish
93-
env:
94-
NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }}
95-
96-
- name: Publish pg-sourcerer to npm
97-
working-directory: packages/pg-sourcerer
98-
run: bun publish --access public --tolerate-republish
99-
env:
100-
NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Release Please
2+
3+
on:
4+
workflow_run:
5+
workflows: ["CI"]
6+
types: [completed]
7+
branches: [main]
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: write
12+
pull-requests: write
13+
id-token: write
14+
15+
jobs:
16+
release-please:
17+
if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }}
18+
runs-on: ubuntu-latest
19+
outputs:
20+
release_created: ${{ steps.release.outputs.release_created }}
21+
steps:
22+
- uses: googleapis/release-please-action@v4
23+
id: release
24+
with:
25+
token: ${{ secrets.GITHUB_TOKEN }}
26+
config-file: release-please-config.json
27+
manifest-file: .release-please-manifest.json
28+
target-branch: main
29+
30+
publish:
31+
name: Publish to npm
32+
needs: release-please
33+
if: ${{ needs.release-please.outputs.release_created == 'true' }}
34+
runs-on: ubuntu-latest
35+
steps:
36+
- uses: actions/checkout@v4
37+
38+
- name: Setup Bun
39+
uses: oven-sh/setup-bun@v1
40+
with:
41+
bun-version: latest
42+
43+
- name: Install dependencies
44+
run: bun install --frozen-lockfile
45+
46+
- name: Build workspace dependencies
47+
run: bun run build
48+
working-directory: packages/pg-introspection
49+
50+
- name: Build pg-sourcerer
51+
run: bun run build
52+
working-directory: packages/pg-sourcerer
53+
54+
- name: Publish pg-introspection to npm
55+
working-directory: packages/pg-introspection
56+
run: bun publish --access public --tolerate-republish
57+
env:
58+
NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }}
59+
60+
- name: Publish pg-sourcerer to npm
61+
working-directory: packages/pg-sourcerer
62+
run: |
63+
cp ../../README.md ./README.md
64+
cp ../../LICENSE ./LICENSE
65+
bun publish --access public --tolerate-republish
66+
rm ./README.md ./LICENSE
67+
env:
68+
NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }}

.release-please-manifest.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
{
2-
"packages/pg-sourcerer": "0.5.0"
3-
}
1+
{"packages/pg-sourcerer": "0.5.0"}

packages/example/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"private": true,
55
"type": "module",
66
"scripts": {
7-
"dry": "bun --env-file=.env pgsourcerer generate --log-level debug --dry-run",
7+
"dry": "bun -b --env-file=.env pgsourcerer generate --log-level debug --dry-run",
88
"dev": "bun run-p db:watch generate:watch",
99
"start": "bun run generate",
10-
"generate": "bun --env-file=.env pgsourcerer generate --log-level debug",
10+
"generate": "bun -b --env-file=.env pgsourcerer generate --log-level debug",
1111
"generate:watch": "bun --env-file=.env --watch pgsourcerer generate --log-level debug",
1212
"predev": "bun db:ensure",
13-
"gm": "bun --env-file=.env ../../node_modules/.bin/graphile-migrate",
13+
"gm": "bun -b graphile-migrate",
1414
"db:ensure": "bun scripts/dbEnsure.ts",
1515
"db:setup": "bun scripts/dbSetup.ts",
1616
"db:latest": "bun run gm watch --once",

0 commit comments

Comments
 (0)