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-windows 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