wavetable/.github/workflows/release.yaml
Roland Rabien 098a5f3303 release: harden upload pipeline (TAG/VER split, --fail-with-body, GITHUB_TOKEN, contents:write)
Aligns with the chip-plugin repos:
- Use TAG (with v prefix) for gh release create, VER (stripped) for
  Changelist lookup and upload.php's version field.
- curl --fail-with-body so server-side errors fail the workflow instead of
  passing silently.
- Switch GH_TOKEN to the auto-provided GITHUB_TOKEN with explicit
  contents:write permission, dropping the dependency on a per-repo
  ACCESS_TOKEN PAT.
2026-04-30 09:25:23 -07:00

81 lines
2.2 KiB
YAML

name: Release
on:
push:
tags:
- '**'
jobs:
build:
name: Build
runs-on: ${{ matrix.os }}
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
include:
- name: Windows
os: windows-latest
- name: Linux
os: ubuntu-latest
- name: macOS
os: macos-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Linux dependencies
if: matrix.name == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
ninja-build clang g++ \
libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev \
libfreetype-dev libfontconfig1-dev \
libx11-dev libxcomposite-dev libxcursor-dev libxext-dev \
libxinerama-dev libxrandr-dev libxrender-dev \
libwebkit2gtk-4.1-dev libglu1-mesa-dev mesa-common-dev
shell: bash
- name: Install Inno Setup (Windows)
if: matrix.name == 'Windows'
run: choco install innosetup --no-progress -y
shell: bash
- name: Build installer
run: ./Installer/build.sh
shell: bash
env:
APPLICATION: ${{ secrets.APPLICATION }}
INSTALLER: ${{ secrets.INSTALLER }}
APPLE_USER: ${{ secrets.APPLE_USER }}
APPLE_PASS: ${{ secrets.APPLE_PASS }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
- name: Upload Artifact
uses: actions/upload-artifact@v4
if: always()
with:
name: Binaries ${{ matrix.name }}
path: bin/*
retention-days: 30
release:
name: Release
needs: build
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
- name: Create Release
run: ./release.sh
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
APIKEY: ${{ secrets.APIKEY }}