98 lines
2.7 KiB
YAML
98 lines
2.7 KiB
YAML
name: Build and Deploy to npm
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
|
|
jobs:
|
|
precompile:
|
|
if: contains(github.event.release.tag_name, 'v0.0.0-latest-master') == false
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-18.04
|
|
platform: linux
|
|
arch: x64
|
|
- os: windows-latest
|
|
platform: win32
|
|
arch: x64
|
|
- os: macos-latest
|
|
platform: darwin
|
|
arch: x64
|
|
runs-on: ${{ matrix.os }}
|
|
env:
|
|
ARCHIVE_FILENAME: nodegui-binary-${{github.event.release.tag_name}}-${{ matrix.platform }}-${{ matrix.arch }}.tar.gz
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: actions/setup-node@v2
|
|
with:
|
|
node-version: '16.x'
|
|
|
|
- name: Install ubuntu deps
|
|
if: contains(matrix.os, 'ubuntu-18.04')
|
|
run: sudo apt install mesa-common-dev libglu1-mesa-dev
|
|
|
|
- name: Install deps
|
|
run: npm install
|
|
|
|
- name: Build nodegui
|
|
run: npm run build
|
|
env:
|
|
CMAKE_BUILD_PARALLEL_LEVEL: 8
|
|
|
|
- name: Compress files
|
|
if: ${{!contains(matrix.os, 'windows-latest')}}
|
|
uses: a7ul/tar-action@v1.0.2
|
|
id: compress
|
|
with:
|
|
command: c
|
|
cwd: ./build/Release
|
|
files: |
|
|
./nodegui_core.node
|
|
outPath: ${{ env.ARCHIVE_FILENAME }}
|
|
|
|
- name: Compress files (Windows)
|
|
if: contains(matrix.os, 'windows-latest')
|
|
uses: a7ul/tar-action@v1.0.2
|
|
id: compress
|
|
with:
|
|
command: c
|
|
cwd: ./build/Release
|
|
files: |
|
|
./nodegui_core.node
|
|
./nodegui_core.lib
|
|
./nodegui_core.exp
|
|
outPath: ${{ env.ARCHIVE_FILENAME }}
|
|
|
|
- uses: actions/upload-artifact@v1
|
|
with:
|
|
name: ${{ env.ARCHIVE_FILENAME }}
|
|
path: ${{ env.ARCHIVE_FILENAME }}
|
|
|
|
- name: Upload release binaries
|
|
uses: alexellis/upload-assets@0.2.2
|
|
env:
|
|
GITHUB_TOKEN: ${{ github.token }}
|
|
with:
|
|
asset_paths: '["${{ env.ARCHIVE_FILENAME }}"]'
|
|
|
|
publish-npm-package:
|
|
needs: precompile
|
|
if: contains(github.event.release.tag_name, 'v0.0.0-latest-master') == false
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-node@v2
|
|
with:
|
|
node-version: '16.x'
|
|
- name: Install ubuntu deps
|
|
run: sudo apt update
|
|
- run: sudo apt install mesa-common-dev libglu1-mesa-dev
|
|
- run: npm install
|
|
- run: echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' >> .npmrc
|
|
- run: npm publish --access=public
|
|
env:
|
|
NPM_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
|
|
CMAKE_BUILD_PARALLEL_LEVEL: 8
|