@@ -3,7 +3,7 @@ name: Release
33on :
44 push :
55 tags :
6- - " v*.*.*"
6+ - " v*.*.*"
77
88concurrency :
99 group : release-${{ github.ref }}
@@ -16,66 +16,66 @@ jobs:
1616 contents : write
1717 packages : write
1818 steps :
19- - uses : actions/checkout@v6
19+ - uses : actions/checkout@v6.0.2
2020
21- - uses : actions/setup-node@v6
22- with :
23- node-version : " 24"
21+ - uses : actions/setup-node@v6.4.0
22+ with :
23+ node-version : " 24"
2424
25- - uses : oven-sh/setup-bun@v2
26- with :
27- bun-version : 1.3.13
25+ - uses : oven-sh/setup-bun@v2.2.0
26+ with :
27+ bun-version : 1.3.13
2828
29- - name : Assert Node.js version
30- run : node -e "const v=+process.version.slice(1).split('.')[0]; if(v<22)process.exit(1)"
29+ - name : Assert Node.js version
30+ run : node -e "const v=+process.version.slice(1).split('.')[0]; if(v<22)process.exit(1)"
3131
32- - name : Install dependencies
33- run : bun install --frozen-lockfile
32+ - name : Install dependencies
33+ run : bun install --frozen-lockfile
3434
35- - name : CI gate
36- run : bun run ci
35+ - name : CI gate
36+ run : bun run ci
3737
38- - name : Unit tests with coverage
39- env :
40- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
41- run : bun run test:coverage
38+ - name : Unit tests with coverage
39+ env :
40+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
41+ run : bun run test:coverage
4242
4343
44- - name : Create tarball for GitHub Release
45- id : pack
46- run : |
47- set -euo pipefail
48- npm pack
49- tarball=$(find . -maxdepth 1 -name 'rethunk-github-mcp-*.tgz' -printf '%T@ %p\n' | sort -rn | head -1 | cut -d' ' -f2-)
50- echo "tarball=${tarball#./}" >> "$GITHUB_OUTPUT"
44+ - name : Create tarball for GitHub Release
45+ id : pack
46+ run : |
47+ set -euo pipefail
48+ npm pack
49+ tarball=$(find . -maxdepth 1 -name 'rethunk-github-mcp-*.tgz' -printf '%T@ %p\n' | sort -rn | head -1 | cut -d' ' -f2-)
50+ echo "tarball=${tarball#./}" >> "$GITHUB_OUTPUT"
5151
52- - name : Publish to GitHub Packages (npm registry)
53- env :
54- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
55- NODE_AUTH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
56- run : |
57- set -euo pipefail
58- node <<'NODE'
59- const fs = require("node:fs");
60- const p = JSON.parse(fs.readFileSync("package.json", "utf8"));
61- p.name = "@rethunk-ai/github-mcp";
62- p.publishConfig = {
63- registry: "https://npm.pkg.github.com",
64- access: "public",
65- };
66- fs.writeFileSync("package.json", JSON.stringify(p, null, 2) + "\n");
67- NODE
68- {
69- echo "@rethunk-ai:registry=https://npm.pkg.github.com"
70- echo "//npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN}"
71- } > .npmrc
72- npm publish --access public
52+ - name : Publish to GitHub Packages (npm registry)
53+ env :
54+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
55+ NODE_AUTH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
56+ run : |
57+ set -euo pipefail
58+ node <<'NODE'
59+ const fs = require("node:fs");
60+ const p = JSON.parse(fs.readFileSync("package.json", "utf8"));
61+ p.name = "@rethunk-ai/github-mcp";
62+ p.publishConfig = {
63+ registry: "https://npm.pkg.github.com",
64+ access: "public",
65+ };
66+ fs.writeFileSync("package.json", JSON.stringify(p, null, 2) + "\n");
67+ NODE
68+ {
69+ echo "@rethunk-ai:registry=https://npm.pkg.github.com"
70+ echo "//npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN}"
71+ } > .npmrc
72+ npm publish --access public
7373
74- - name : Create GitHub Release (official gh CLI, no third-party action)
75- env :
76- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
77- run : |
78- set -euo pipefail
79- gh release create "${GITHUB_REF_NAME}" "${{ steps.pack.outputs.tarball }}" \
80- --verify-tag \
81- --generate-notes
74+ - name : Create GitHub Release (official gh CLI, no third-party action)
75+ env :
76+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
77+ run : |
78+ set -euo pipefail
79+ gh release create "${GITHUB_REF_NAME}" "${{ steps.pack.outputs.tarball }}" \
80+ --verify-tag \
81+ --generate-notes
0 commit comments