Skip to content

Commit

Permalink
Publish to npm through GitHub Actions
Browse files Browse the repository at this point in the history
  • Loading branch information
verhovsky committed Jul 3, 2023
1 parent 3224eef commit 811a705
Showing 1 changed file with 29 additions and 33 deletions.
62 changes: 29 additions & 33 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,13 @@ on:
pull_request:
branches:
- master
release:
types:
- released

env:
NODE_PREBUILD_CMD: npx prebuild -t 10.0.0 -t 12.0.0 -t 14.0.0 -t 16.0.0 -t 18.0.0 -t 20.0.0 --strip
ELECTRON_PREBUILD_CMD: npx prebuild -r electron -t 3.0.0 -t 4.0.0 -t 5.0.0 -t 6.0.0 -t 7.0.0 -t 8.0.0 -t 9.0.0 -t 10.0.0 -t 11.0.0 -t 12.0.0 -t 13.0.0 -t 14.0.0 -t 15.0.0 -t 16.0.0 -t 17.0.0 -t 18.0.0 -t 19.0.0 -t 20.0.0 -t 21.0.0 -t 22.0.0 -t 23.0.0 -t 24.0.0 -t 25.0.0 --strip
NODE_PREBUILD_CMD: npx prebuild -t 10.0.0 -t 12.0.0 -t 14.0.0 -t 16.0.0 -t 18.0.0 -t 20.0.0 --strip -u ${{ secrets.GH_TOKEN }}
ELECTRON_PREBUILD_CMD: npx prebuild -r electron -t 3.0.0 -t 4.0.0 -t 5.0.0 -t 6.0.0 -t 7.0.0 -t 8.0.0 -t 9.0.0 -t 10.0.0 -t 11.0.0 -t 12.0.0 -t 13.0.0 -t 14.0.0 -t 15.0.0 -t 16.0.0 -t 17.0.0 -t 18.0.0 -t 19.0.0 -t 20.0.0 -t 21.0.0 -t 22.0.0 -t 23.0.0 -t 24.0.0 -t 25.0.0 --strip -u ${{ secrets.GH_TOKEN }}

jobs:

Expand Down Expand Up @@ -43,55 +46,48 @@ jobs:
- run: npm install
- run: npm test

publish:
if: ${{ github.event_name == 'release' }}
name: Publish to npm
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
- uses: actions/setup-node@v3
with:
node-version: 20
registry-url: https://registry.npmjs.org
- run: npm install
- run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

prebuild:
strategy:
matrix:
os:
- windows-2019
- macos-latest
- ubuntu-latest
node:
# Node 10-14 fails to prebuild for Node 18+
#
# macos-latest's Python version is too new to work with the node-gyp
# bundled by prebuild and the "overrides" in package.json for node-gyp
# doesn't work before npm 8.3 (Node 16)
#
# ubuntu-latest has a similar issue but in this case the error is more direct:
# #error "It looks like you are building this native module without
# using the right config.gypi. This normally means that you need to
# update electron-rebuild (>=3.2.8) or node-gyp (>=8.4.0) if you're
# building modules directly."
#
# windows-2019 fails with
# gyp: name 'llvm_version' is not defined while evaluating condition
# 'llvm_version=="0.0"' in binding.gyp while trying to load binding.gyp
# - 10
# - 12
# - 14
- 16
- 18
- 20
fail-fast: false
name: Prebuild with Node ${{ matrix.node }} on ${{ matrix.os }}
name: Prebuild for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
# needs: test
needs: publish
steps:
- uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
node-version: 20
- run: npm install
- if: matrix.os == 'windows-latest'
run: ${{ env.NODE_PREBUILD_CMD }} --arch ia32
- if: matrix.os == 'windows-latest'
run: ${{ env.ELECTRON_PREBUILD_CMD }} --arch ia32
- if: matrix.os == 'macos-latest'
- if: runner.os == 'macOS'
run: ${{ env.NODE_PREBUILD_CMD }} --arch arm64
- if: matrix.os == 'macos-latest'
- if: runner.os == 'macOS'
run: ${{ env.ELECTRON_PREBUILD_CMD }} --arch arm64
- run: ${{ env.NODE_PREBUILD_CMD }}
- run: ${{ env.ELECTRON_PREBUILD_CMD }}

0 comments on commit 811a705

Please sign in to comment.