Skip to content

build-release

build-release #61

Workflow file for this run

name: build-release
on:
workflow_dispatch:
inputs:
releaseTitle:
description: "Release title"
required: true
tagVersion:
description: "Tag version"
required: true
permissions:
actions: read
contents: read
jobs:
linuxBuild:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v3
with:
node-version: 22
- uses: pnpm/action-setup@v4
# Cache node_modules
- uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
- uses: nrwl/nx-set-shas@v4
- run: pnpm exec nx run-many -t build --configuration=production
- run: pnpm exec nx run servicebus-browser-app:make --extraMetadata.version=${{ github.event.inputs.tagVersion }}
- name: Publish release as artifect
uses: actions/upload-artifact@v4
with:
name: linux-release
path: dist/executables
windowsBuild:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v3
with:
node-version: 22
- uses: pnpm/action-setup@v4
# Cache node_modules
- uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
- uses: nrwl/nx-set-shas@v4
- run: pnpm exec nx run-many -t build --configuration=production
- run: pnpm exec nx run servicebus-browser-app:make --extraMetadata.version=${{ github.event.inputs.tagVersion }}
- name: Publish release as artifect
uses: actions/upload-artifact@v4
with:
name: windows-release
path: dist/executables
macBuild:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v3
with:
node-version: 22
- uses: pnpm/action-setup@v4
# Cache node_modules
- uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
- uses: nrwl/nx-set-shas@v4
- run: pnpm exec nx run-many -t build --configuration=production
- name: Build executable
env:
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
CSC_LINK: ${{ secrets.CSC_LINK }}
APPLEID: ${{ secrets.APPLEID }}
APPLEIDPASS: ${{ secrets.APPLEIDPASS }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
run: pnpm exec nx run servicebus-browser-app:make --extraMetadata.version=${{ github.event.inputs.tagVersion }} --configuration=macos-notarize
- name: Publish release as artifect
uses: actions/upload-artifact@v4
with:
name: macos-release
path: dist/executables
createRelease:
name: Create the release
runs-on: ubuntu-latest
needs: [windowsBuild, linuxBuild, macBuild]
permissions:
contents: write
steps:
- name: Download Windows Build
uses: actions/download-artifact@v4
with:
name: windows-release
path: windows
- name: Download Mac Build
uses: actions/download-artifact@v4
with:
name: macos-release
path: mac
- name: Download Linux Build
uses: actions/download-artifact@v4
with:
name: linux-release
path: linux
- name: Display structure of downloaded files
run: ls -R
- name: prepare resource folder
run: |
mkdir -p release
cp "windows/Servicebus browser.exe" "release/servicebus-browser-windows.exe"
cp "linux/Servicebus browser.AppImage" "release/servicebus-browser-linux.AppImage"
cp "mac/Servicebus browser.dmg" "release/servicebus-browser-mac-arm64.dmg"
cp "mac/Servicebus browser.zip" "release/servicebus-browser-mac-arm64.zip"
- uses: ncipollo/release-action@v1
with:
name: ${{ github.event.inputs.releaseTitle }}
tag: ${{ github.event.inputs.tagVersion }}
body: This is a release
draft: true
artifacts: release/*.*