build-release #61
This file contains 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-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/*.* |