mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-09-24 14:55:37 +00:00
Add CI workflow and helper to create releases and attach artifacts
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
name: Create Release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tag_name:
|
||||
description: 'Tag name (e.g., v1.0.0)'
|
||||
required: true
|
||||
release_name:
|
||||
description: 'Release title'
|
||||
required: true
|
||||
body:
|
||||
description: 'Release notes'
|
||||
required: false
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Install
|
||||
run: npm ci
|
||||
- name: Build Linux
|
||||
run: npm run build:linux
|
||||
- name: Upload Linux artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux-artifacts
|
||||
path: release/**
|
||||
|
||||
build-windows:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Install
|
||||
run: npm ci
|
||||
- name: Build Windows
|
||||
run: npm run build:win
|
||||
- name: Upload Windows artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-artifacts
|
||||
path: release/**
|
||||
|
||||
build-mac:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Install
|
||||
run: npm ci
|
||||
- name: Build Mac
|
||||
run: npm run build:mac
|
||||
- name: Upload Mac artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: mac-artifacts
|
||||
path: release/**
|
||||
|
||||
create_release:
|
||||
needs: [build-linux, build-windows, build-mac]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Download Linux artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: linux-artifacts
|
||||
path: release/
|
||||
- name: Download Windows artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: windows-artifacts
|
||||
path: release/
|
||||
- name: Download Mac artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: mac-artifacts
|
||||
path: release/
|
||||
- name: Create GitHub release and upload artifacts
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
tag: ${{ github.event.inputs.tag_name }}
|
||||
name: ${{ github.event.inputs.release_name }}
|
||||
body: ${{ github.event.inputs.body }}
|
||||
files: 'release/**'
|
||||
@@ -26,6 +26,7 @@
|
||||
"build:mac": "tsc && vite build && electron-builder --mac",
|
||||
"build:win": "tsc && vite build && electron-builder --win",
|
||||
"build:linux": "tsc && vite build && electron-builder --linux",
|
||||
"release:dispatch": "sh ./scripts/trigger_release.sh",
|
||||
"test": "vitest --run",
|
||||
"test:watch": "vitest"
|
||||
},
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
# Usage: ./scripts/trigger_release.sh <tag> "Release Title" "Release notes"
|
||||
set -euo pipefail
|
||||
if ! command -v gh >/dev/null 2>&1; then
|
||||
echo "gh (GitHub CLI) is required to trigger the workflow. Install: https://cli.github.com/"
|
||||
exit 1
|
||||
fi
|
||||
TAG="$1"
|
||||
RELEASE_NAME="$2"
|
||||
BODY="${3:-}"
|
||||
# Trigger the workflow_dispatch for the create-release workflow
|
||||
gh workflow run .github/workflows/create-release.yml -f tag_name="$TAG" -f release_name="$RELEASE_NAME" -f body="$BODY"
|
||||
echo "Triggered workflow to create release $TAG"
|
||||
Reference in New Issue
Block a user