Skip to content

Commit

Permalink
Prepare for v6
Browse files Browse the repository at this point in the history
  • Loading branch information
recrsn committed Feb 7, 2025
1 parent d8195c6 commit d69a296
Show file tree
Hide file tree
Showing 5 changed files with 1,408 additions and 3,608 deletions.
136 changes: 52 additions & 84 deletions .github/workflows/build-pack-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,61 +10,72 @@ on:

jobs:

build:
runs-on: ubuntu-22.04
strategy:
matrix:
os: [linux]
arch: [amd64, arm64, arm]
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
# This is unsafe, but we really don't use any other native dependencies
- run: npm ci
- run: docker run -u $(id -u):$(id -g) -v `pwd`:/input -w /input ghcr.io/prebuild/almalinux-devtoolset11 npx prebuildify --napi --tag-libc --strip
- run: docker run -u $(id -u):$(id -g) -v `pwd`:/input -w /input ghcr.io/prebuild/alpine npx prebuildify --napi --tag-libc --strip
- run: docker run -u $(id -u):$(id -g) -v `pwd`:/input -w /input ghcr.io/prebuild/linux-armv7 npx prebuildify --napi --tag-libc --strip
- run: docker run -u $(id -u):$(id -g) -v `pwd`:/input -w /input ghcr.io/prebuild/linux-armv7l-musl npx prebuildify --napi --tag-libc --strip
- run: docker run -u $(id -u):$(id -g) -v `pwd`:/input -w /input ghcr.io/prebuild/linux-arm64 npx prebuildify --napi --tag-libc --strip
- run: docker run -u $(id -u):$(id -g) -v `pwd`:/input -w /input ghcr.io/prebuild/linux-arm64-musl npx prebuildify --napi --tag-libc --strip
- run: find prebuilds
- uses: actions/upload-artifact@v4
with:
image: tonistiigi/binfmt:latest
platforms: arm,arm64

- run: >
docker build .
--build-arg TEST_TIMEOUT_SECONDS=30
--tag node-bcrypt-builder
--platform ${{ matrix.os }}/${{ matrix.arch }}
- run: >
docker create
--name node-bcryptjs-builder
--platform ${{ matrix.os }}/${{ matrix.arch }}
node-bcrypt-builder
- run: docker cp "node-bcryptjs-builder:/usr/local/opt/bcrypt-js/prebuilds" .
name: prebuild-linux
path: ./prebuilds/

# build for Alpine:
- run: >
docker build -f Dockerfile-alpine .
--build-arg TEST_TIMEOUT_SECONDS=30
--tag node-bcrypt-builder-alpine
--platform ${{ matrix.os }}/${{ matrix.arch }}
- run: >
docker create
--name node-bcryptjs-builder-alpine
--platform ${{ matrix.os }}/${{ matrix.arch }}
node-bcrypt-builder-alpine
- run: docker cp "node-bcryptjs-builder-alpine:/usr/local/opt/bcrypt-js/prebuilds" .
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- run: npx prebuildify --napi --strip --arch=ia32
- run: npx prebuildify --napi --strip --arch=x64
- run: dir prebuilds
- uses: actions/upload-artifact@v4
with:
name: prebuild-windows
path: ./prebuilds/

build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- run: npx prebuildify --napi --strip --arch=arm64
- run: npx prebuildify --napi --strip --arch=x64
- run: find prebuilds
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: prebuild-${{ matrix.os }}-${{ matrix.arch }}
path: ./prebuilds
name: prebuild-macos
path: ./prebuilds/

pack:
needs: build
runs-on: ubuntu-22.04
needs:
- build-linux
- build-windows
- build-macos
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 20
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v4
with:
path: /tmp/prebuilds/
- name: Coalesce prebuilds from build matrix
Expand All @@ -75,50 +86,7 @@ jobs:
done
- run: chmod a+x prebuilds/*/*.node && find prebuilds -executable -type f
- run: echo "PACK_FILE=$(npm pack)" >> $GITHUB_ENV
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: package-tgz
path: ${{ env.PACK_FILE }}

publish-npm:
needs: pack
if: github.event_name == 'release'
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: 20
registry-url: 'https://registry.npmjs.org'
- uses: actions/download-artifact@v2
with:
name: package-tgz
path: /tmp/package/
- run: npm publish /tmp/package/bcrypt*.tgz
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}

publish-gpr:
needs: pack
if: github.event_name == 'release'
runs-on: ubuntu-22.04
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: 20
registry-url: https://npm.pkg.github.com/
- uses: actions/download-artifact@v2
with:
name: package-tgz
path: /tmp/package/
- run: npm publish /tmp/package/bcrypt*.tgz
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}




6 changes: 3 additions & 3 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ jobs:
runs-on: ubuntu-22.04
strategy:
matrix:
node-version: [18, 20]
node-version: [18, 20, 22]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
Expand All @@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-22.04
strategy:
matrix:
node-version: [18, 20]
node-version: [18, 20, 22]
container:
image: node:${{ matrix.node-version }}-alpine
steps:
Expand Down
5 changes: 2 additions & 3 deletions binding.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,9 @@
],
'cflags!': [ '-fno-exceptions' ],
'cflags_cc!': [ '-fno-exceptions' ],
'include_dirs' : [
"<!@(node -p \"require('node-addon-api').include\")"
'dependencies': [
"<!(node -p \"require('node-addon-api').targets\"):node_addon_api_except",
],
'dependencies': ["<!(node -p \"require('node-addon-api').gyp\")"],
'conditions': [
['OS=="win"', {
"msvs_settings": {
Expand Down
Loading

0 comments on commit d69a296

Please sign in to comment.