Skip to content

BrunoN Release Build #18

BrunoN Release Build

BrunoN Release Build #18

Workflow file for this run

name: BrunoN Release Build
on:
push:
tags:
- 'v*'
defaults:
run:
shell: bash
jobs:
build-linux-and-macos:
name: Build Linux and macOS Packages
runs-on: ubuntu-latest
permissions:
contents: read
env:
CSC_IDENTITY_AUTO_DISCOVERY: false
GH_TOKEN: ${{ secrets.GH_TOKEN }}
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- uses: actions/setup-node@v5
with:
node-version-file: '.nvmrc'
cache: npm
cache-dependency-path: package-lock.json
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends rpm libarchive-tools libfuse2
- name: Install node dependencies
run: npm ci --legacy-peer-deps
- name: Build shared libraries
run: |
npm run build:graphql-docs
npm run build:bruno-common
npm run build:bruno-query
npm run sandbox:bundle-libraries --workspace=packages/bruno-js
npm run build:bruno-converters
npm run build:bruno-requests
npm run build:bruno-filestore
- name: Build BrunoN Linux packages
run: npm run release:brunon:linux
- name: Build BrunoN macOS packages (ZIP only, cross-platform)
run: npm run release:brunon:mac
- name: List artifacts
run: ls -lh packages/bruno-electron/out/
- uses: actions/upload-artifact@v4
with:
name: brunon-linux-and-macos
path: packages/bruno-electron/out/**
if-no-files-found: error
build-windows:
name: Build Windows Packages
runs-on: windows-latest
permissions:
contents: read
env:
CSC_IDENTITY_AUTO_DISCOVERY: false
GH_TOKEN: ${{ secrets.GH_TOKEN }}
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- uses: actions/setup-node@v5
with:
node-version-file: '.nvmrc'
cache: npm
cache-dependency-path: package-lock.json
- name: Install node dependencies
run: npm ci --legacy-peer-deps
- name: Build shared libraries
run: |
npm run build:graphql-docs
npm run build:bruno-common
npm run build:bruno-query
npm run sandbox:bundle-libraries --workspace=packages/bruno-js
npm run build:bruno-converters
npm run build:bruno-requests
npm run build:bruno-filestore
- name: Build BrunoN Windows packages
run: npm run release:brunon:win
- name: List artifacts
run: ls packages/bruno-electron/out/
- uses: actions/upload-artifact@v4
with:
name: brunon-windows
path: packages/bruno-electron/out/**
if-no-files-found: error
publish-release:
name: Create GitHub Release
needs:
- build-linux-and-macos
- build-windows
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: release-artifacts
merge-multiple: true
- name: List release contents
run: ls -lhR release-artifacts/
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
name: BrunoN ${{ github.ref_name }}
files: release-artifacts/*
generate_release_notes: true
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}