nukeop/nuclear

View on GitHub
.github/workflows/release.yml

Summary

Maintainability
Test Coverage
name: Release job

on: workflow_dispatch

jobs:
  linux_release:
    runs-on: ubuntu-latest
    timeout-minutes: 30

    steps:
      - uses: actions/checkout@master
      - name: get-npm-version
        id: package-version
        uses: pchynoweth/action-get-npm-version@1.1.1
      - name: Use Node.js 18
        uses: actions/setup-node@master
        with:
          version: 18
          cache: npm
      - run: npm ci
      - run: npm run build:linux
        shell: bash
        env:
          VERSION: ${{ steps.package-version.outputs.version }}
      - name: Upload binaries
        uses: actions/upload-artifact@v2
        with:
          name: nuclear-binaries-linux
          path: release/*.*
      - name: Create a release
        uses: softprops/action-gh-release@v1
        with:
          name: v${{ steps.package-version.outputs.version }}
          tag_name: v${{ steps.package-version.outputs.version }}
          prerelease: true
          files: release/*.*
      - name: Inform AUR updater
        uses: peter-evans/repository-dispatch@v1
        with:
          repository: NuclearPlayer/nuclear-nightly-aur
          token: ${{ secrets.REPO_ACCESS_TOKEN }}
          event-type: release
          client-payload: '{"tag": "v${{ steps.package-version.outputs.version }}"}'
      - name: Inform Snapcraft updater
        uses: peter-evans/repository-dispatch@v1
        with:
          repository: NuclearPlayer/nuclear-nightly-snapcraft
          token: ${{ secrets.REPO_ACCESS_TOKEN }}
          event-type: release
          client-payload: '{"tag": "v${{ steps.package-version.outputs.version }}"}'
      - name: Inform Flatpak updater
        uses: peter-evans/repository-dispatch@v1
        with:
          repository: NuclearPlayer/nuclear-nightly-flatpak
          token: ${{ secrets.REPO_ACCESS_TOKEN }}
          event-type: release
          client-payload: '{"tag": "v${{ steps.package-version.outputs.version }}"}'

  mac_release:
    runs-on: macos-11
    timeout-minutes: 30

    steps:
      - uses: actions/checkout@master
      - name: get-npm-version
        id: package-version
        uses: pchynoweth/action-get-npm-version@1.1.1
      - name: Use Node.js 18
        uses: actions/setup-node@master
        with:
          version: 18
          cache: npm
      - run: npm ci
      - run: npm run build:macos
        shell: bash
        env:
          VERSION: ${{ steps.package-version.outputs.version }}
      - name: Upload binaries
        uses: actions/upload-artifact@v2
        with:
          name: nuclear-binaries-mac
          path: release/*.*
      - name: Create a release
        uses: softprops/action-gh-release@v1
        with:
          name: v${{ steps.package-version.outputs.version }}
          tag_name: v${{ steps.package-version.outputs.version }}
          prerelease: true
          files: release/*.*

  windows_release:
    runs-on: windows-latest
    timeout-minutes: 30

    steps:
      - uses: actions/checkout@master
      - name: get-npm-version
        id: package-version
        uses: pchynoweth/action-get-npm-version@1.1.1
      - name: Use Node.js 18
        uses: actions/setup-node@master
        with:
          version: 18
          cache: npm
      - name: add git binaries to PATH
        run: |
          echo "C:\Program Files\Git\usr\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
          echo "C:\Program Files\Git\mingw64\libexec\git-core" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
      - run: npm ci
      - run: npm run build:windows
        shell: bash
        env:
          VERSION: ${{ steps.package-version.outputs.version }}
      - name: Upload binaries
        uses: actions/upload-artifact@v2
        with:
          name: nuclear-binaries-windows
          path: release/*.*
      - name: Create a release
        uses: softprops/action-gh-release@v1
        with:
          name: v${{ steps.package-version.outputs.version }}
          tag_name: v${{ steps.package-version.outputs.version }}
          prerelease: true
          files: release/*.*