Skip to content

Commit 311b8b0

Browse files
Devraj Mehtadevm33
authored andcommitted
Replace prebuild-install with publishing prebuilds to npm
1 parent 0ccd6ef commit 311b8b0

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

.github/workflows/ci.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,10 @@ jobs:
9393
ls prebuilds/
9494
name: List prebuilds
9595
96+
- uses: actions/upload-artifact@v4
97+
with:
98+
path: prebuilds/
99+
96100
- name: Upload prebuilds to GitHub
97101
run: npx prebuild --verbose --upload-all ${{ secrets.GITHUB_TOKEN }}
98102
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
@@ -127,7 +131,7 @@ jobs:
127131
npm-publish:
128132
needs: [build, alpine-build]
129133
name: Publish to NPM
130-
runs-on: ubuntu-20.04
134+
runs-on: ubuntu-latest
131135
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
132136

133137
steps:
@@ -144,6 +148,11 @@ jobs:
144148
- run: npm ci
145149
name: Setup environment
146150

151+
- uses: actions/download-artifact@v4
152+
with:
153+
path: prebuilds
154+
merge-multiple: true
155+
147156
- run: npm publish --access public
148157
name: Upload to NPM
149158
env:

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,12 @@
2626
"lib",
2727
"src",
2828
"binding.gyp",
29-
"keytar.d.ts"
29+
"keytar.d.ts",
30+
"prebuilds/**/*"
3031
],
3132
"types": "./keytar.d.ts",
3233
"scripts": {
33-
"install": "prebuild-install || npm run build",
34+
"install": "node script/install.js || npm run build",
3435
"build": "node-gyp rebuild",
3536
"lint": "npm run cpplint",
3637
"cpplint": "node-cpplint --filters legal-copyright,build-include,build-namespaces src/*.cc",

script/install.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const fs = require('fs');
2+
const path = require('path');
3+
4+
/** Script to copy prebuilds for the current platform to build/Release directory. */
5+
6+
const prebuildsDir = path.join(__dirname, '../prebuilds', process.platform, process.arch);
7+
const releaseDir = path.join(__dirname, '../build/Release');
8+
9+
if (!fs.existsSync(prebuildsDir)) {
10+
console.error('Prebuilds directory does not exist:', prebuildsDir);
11+
process.exit(1);
12+
}
13+
14+
fs.mkdirSync(releaseDir, { recursive: true });
15+
fs.cpSync(prebuildsDir, releaseDir, { recursive: true });

0 commit comments

Comments
 (0)