Skip to content

Release

Release #13

Workflow file for this run

name: Release
on:
workflow_dispatch:
inputs:
version:
description: 'Version tag (ex: v0.1.0-beta)'
required: true
default: 'v0.1.0-beta'
jobs:
build:
runs-on: macos-14 # Apple Silicon runner
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Update version in package.json
run: |
VERSION="${{ github.event.inputs.version }}"
# Remove 'v' prefix if present
VERSION="${VERSION#v}"
npm version "$VERSION" --no-git-tag-version --allow-same-version
- name: Install dependencies
run: npm ci --legacy-peer-deps --loglevel=error
- name: Build native audio capture module
run: npm run build:native
- name: Build and package (arm64)
run: npm run make
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: List artifacts
run: ls -la out/make/
- name: Upload DMG artifact
uses: actions/upload-artifact@v4
with:
name: VoxTape-macOS-arm64
path: out/make/*.dmg
- name: Upload ZIP artifact
uses: actions/upload-artifact@v4
with:
name: VoxTape-macOS-arm64-zip
path: out/make/zip/**/*.zip
release:
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: List downloaded artifacts
run: find artifacts -type f
- name: Create Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.event.inputs.version }}
name: VoxTape ${{ github.event.inputs.version }}
files: |
artifacts/**/*.dmg
artifacts/**/*.zip
generate_release_notes: true
draft: false
prerelease: ${{ contains(github.event.inputs.version, '-beta') || contains(github.event.inputs.version, '-alpha') }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}