robosats/.github/workflows/desktop-build.yml

122 lines
4.0 KiB
YAML
Raw Normal View History

2024-07-10 07:55:49 +00:00
name: "Build: Desktop"
on:
workflow_dispatch:
workflow_call:
inputs:
semver:
required: true
type: string
2024-07-10 07:55:49 +00:00
push:
branches: [ "main" ]
paths: [ "desktopApp", "frontend" ]
pull_request:
branches: [ "main" ]
paths: [ "desktopApp", "frontend" ]
jobs:
build-desktop:
permissions: write-all
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '16'
2024-09-09 17:03:28 +00:00
- name: Set up frontend dependencies
run: |
cd frontend
npm install
npm run build
2024-07-10 07:55:49 +00:00
- name: Install dependencies
run: |
cd desktopApp
npm install
2024-09-09 07:47:13 +00:00
2024-07-10 07:55:49 +00:00
- name: Build for macOS
run: |
cd desktopApp
npm run package-mac
- name: Build for Windows
run: |
cd desktopApp
npm run package-win
2024-09-09 07:47:13 +00:00
2024-07-10 07:55:49 +00:00
- name: Build for Linux
run: |
cd desktopApp
npm run package-linux
2024-09-09 07:47:13 +00:00
- name: 'Get Commit Hash'
id: commit
uses: pr-mpt/actions-commit-hash@v3
- name: 'Upload mac-build Release Artifact (for Release)'
2024-07-10 07:55:49 +00:00
uses: actions/upload-artifact@v4
if: inputs.semver != '' # only if this workflow is called from a push to tag (a Release)
2024-07-10 07:55:49 +00:00
with:
2024-09-10 00:51:44 +00:00
name: robosats-desktop-${{ inputs.semver }}-mac-darwin-x64.zip
path: desktopApp/release-builds/Robosats-darwin-x64
2024-09-09 07:47:13 +00:00
- name: 'Upload linux-build Release Artifact (for Release)'
uses: actions/upload-artifact@v4
if: inputs.semver != '' # only if this workflow is called from a push to tag (a Release)
with:
name: robosats-desktop-${{ inputs.semver }}-linux.zip
path: desktopApp/release-builds/desktopApp-linux.zip
2024-09-09 07:47:13 +00:00
- name: 'Upload win-build Release Artifact (for Release)'
2024-07-10 07:55:49 +00:00
uses: actions/upload-artifact@v4
if: inputs.semver != '' # only if this workflow is called from a push to tag (a Release)
2024-07-10 07:55:49 +00:00
with:
name: robosats-desktop-${{ inputs.semver }}-win.zip
2024-07-10 07:55:49 +00:00
path: desktopApp/release-builds/desktopApp-win.zip
- name: Create Pre-release
id: create_release
if: inputs.semver == '' # only if this workflow is not called from a push to tag (a Release)
uses: ncipollo/release-action@v1.13.0
2024-07-10 07:55:49 +00:00
with:
tag: desktop-${{ steps.commit.outputs.short }}
name: robosats-desktop-${{ steps.commit.outputs.short }}
prerelease: true
- name: Upload macOS Build Artifact
id: upload-release-mac-zip-asset
if: inputs.semver == '' # only if this workflow is not called from a push to tag (a Release)
2024-09-10 00:51:44 +00:00
uses: actions/upload-artifact@v4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
2024-09-10 00:51:44 +00:00
path: /desktopApp-mac.zip
name: robosats-desktop-${{ steps.commit.outputs.short }}-mac.zip
2024-07-10 07:55:49 +00:00
- name: Upload Windows Build Artifact
id: upload-release-win-zip-asset
if: inputs.semver == '' # only if this workflow is not called from a push to tag (a Release)
2024-09-10 00:51:44 +00:00
uses: actions/upload-artifact@v4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
2024-09-10 00:51:44 +00:00
path: desktopApp/release-builds/Robosats-win32-ia32
name: robosats-desktop-${{ steps.commit.outputs.short }}-win32-ia32.zip
- name: Upload Linux Build Artifact
id: upload-release-linux-zip-asset
if: inputs.semver == '' # only if this workflow is not called from a push to tag (a Release)
2024-09-10 00:51:44 +00:00
uses: actions/upload-artifact@v4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
2024-09-10 00:51:44 +00:00
path: desktopApp/release-builds/Robosats-linux-x64
name: robosats-desktop-${{ steps.commit.outputs.short }}-linux-x64.zip