Build and Deploy to npm #74
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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-24.04 | |
| platform: linux | |
| arch: x64 | |
| - os: windows-2025 | |
| platform: win32 | |
| arch: x64 | |
| - os: macos-14 | |
| platform: darwin | |
| arch: arm64 | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| ARCHIVE_FILENAME: nodegui-binary-${{github.event.release.tag_name}}-${{ matrix.platform }}-${{ matrix.arch }}.tar.gz | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24.x' | |
| - name: Update apt | |
| if: contains(matrix.platform, 'linux') | |
| run: sudo apt update | |
| - name: Install ubuntu deps | |
| if: contains(matrix.platform, 'linux') | |
| run: sudo apt install mesa-common-dev libglu1-mesa-dev libegl1 libopengl-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.platform, 'win32')}} | |
| 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.platform, 'win32') | |
| uses: a7ul/tar-action@v1.0.2 | |
| id: compress-windows | |
| with: | |
| command: c | |
| cwd: ./build/Release | |
| files: | | |
| ./nodegui_core.node | |
| ./nodegui_core.lib | |
| outPath: ${{ env.ARCHIVE_FILENAME }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ env.ARCHIVE_FILENAME }} | |
| path: ${{ env.ARCHIVE_FILENAME }} | |
| - name: Upload release binaries | |
| run: | | |
| gh release upload "${{github.event.release.tag_name}}" ${{ env.ARCHIVE_FILENAME }} | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| publish-npm-package: | |
| needs: precompile | |
| if: contains(github.event.release.tag_name, 'v0.0.0-latest-master') == false | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24.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 |