mirror of
https://github.com/jhbruhn/respira.git
synced 2026-01-27 18:33:41 +00:00
- Add build.yml workflow for continuous integration - Builds web app on Ubuntu - Packages Electron app for Windows, macOS, and Linux - Uploads artifacts for each platform - Add release.yml workflow with release-drafter integration - Automatically creates draft releases on push to main - Auto-calculates version based on PR labels (major/minor/patch) - Updates package.json version during build for proper installers - Uploads platform-specific installers to draft releases - Add release-drafter.yml configuration - Organizes changelog by categories (Features, Bug Fixes, Maintenance) - Supports semantic versioning via PR labels 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
92 lines
2.1 KiB
YAML
92 lines
2.1 KiB
YAML
name: Build and Package
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-web:
|
|
name: Build Web Application
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
cache: 'npm'
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Build web application
|
|
run: npm run build
|
|
|
|
- name: Upload web build artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: web-build
|
|
path: dist/
|
|
retention-days: 7
|
|
|
|
build-electron:
|
|
name: Build Electron - ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
cache: 'npm'
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Package Electron app
|
|
run: npm run package
|
|
|
|
- name: Create distributables
|
|
run: npm run make
|
|
|
|
- name: Upload Windows artifacts
|
|
if: matrix.os == 'windows-latest'
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: electron-windows
|
|
path: |
|
|
out/make/squirrel.windows/**/*.exe
|
|
out/make/squirrel.windows/**/*.nupkg
|
|
retention-days: 30
|
|
|
|
- name: Upload macOS artifacts
|
|
if: matrix.os == 'macos-latest'
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: electron-macos
|
|
path: |
|
|
out/make/zip/**/*.zip
|
|
retention-days: 30
|
|
|
|
- name: Upload Linux artifacts
|
|
if: matrix.os == 'ubuntu-latest'
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: electron-linux
|
|
path: |
|
|
out/make/deb/**/*.deb
|
|
out/make/rpm/**/*.rpm
|
|
retention-days: 30
|