Skip to content

release: v0.12.1

release: v0.12.1 #55

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
jobs:
build-windows:
runs-on: windows-latest
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Get version
shell: bash
run: echo "PLUGIN_VERSION=$(echo '${{ github.ref_name }}' | sed 's/^v//' | sed 's/-rc\.[0-9]*//')" >> $GITHUB_ENV
- name: Configure
run: cmake -B build -DCMAKE_BUILD_TYPE=Release -DINTERSECT_VERSION=${{ env.PLUGIN_VERSION }}
- name: Build
run: cmake --build build --config Release
- name: Package
run: |
mkdir staging
cp -r build/Intersect_artefacts/Release/VST3/INTERSECT.vst3 staging/
cp build/Intersect_artefacts/Release/Standalone/INTERSECT.exe staging/
cd staging && 7z a ../INTERSECT-${{ github.ref_name }}-Windows-x64.zip *
- uses: actions/upload-artifact@v5
with:
name: INTERSECT-Windows-x64
path: INTERSECT-${{ github.ref_name }}-Windows-x64.zip
build-linux:
runs-on: ubuntu-latest
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libasound2-dev libfreetype-dev libx11-dev libxrandr-dev libxcursor-dev libxinerama-dev libwebkit2gtk-4.1-dev libcurl4-openssl-dev
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Get version
shell: bash
run: echo "PLUGIN_VERSION=$(echo '${{ github.ref_name }}' | sed 's/^v//' | sed 's/-rc\.[0-9]*//')" >> $GITHUB_ENV
- name: Configure
run: cmake -B build -DCMAKE_BUILD_TYPE=Release -DINTERSECT_VERSION=${{ env.PLUGIN_VERSION }}
- name: Build
run: cmake --build build --config Release
- name: Package
run: |
mkdir staging
cp -r build/Intersect_artefacts/Release/VST3/INTERSECT.vst3 staging/
cp build/Intersect_artefacts/Release/Standalone/INTERSECT staging/
cd staging && zip -r ../INTERSECT-${{ github.ref_name }}-Linux-x64.zip .
- uses: actions/upload-artifact@v5
with:
name: INTERSECT-Linux-x64
path: INTERSECT-${{ github.ref_name }}-Linux-x64.zip
build-macos-arm64:
runs-on: macos-latest
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Get version
shell: bash
run: echo "PLUGIN_VERSION=$(echo '${{ github.ref_name }}' | sed 's/^v//' | sed 's/-rc\.[0-9]*//')" >> $GITHUB_ENV
- name: Configure
run: cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DINTERSECT_VERSION=${{ env.PLUGIN_VERSION }}
- name: Build
run: cmake --build build --config Release
- name: Codesign
run: |
codesign --force --deep --sign - build/Intersect_artefacts/Release/AU/INTERSECT.component
codesign --force --deep --sign - build/Intersect_artefacts/Release/VST3/INTERSECT.vst3
codesign --force --deep --sign - build/Intersect_artefacts/Release/Standalone/INTERSECT.app
- name: Package
run: |
mkdir staging
cp -r build/Intersect_artefacts/Release/VST3/INTERSECT.vst3 staging/
cp -r build/Intersect_artefacts/Release/Standalone/INTERSECT.app staging/
cp -r build/Intersect_artefacts/Release/AU/INTERSECT.component staging/
cd staging && zip -r ../INTERSECT-${{ github.ref_name }}-macOS-arm64.zip .
- uses: actions/upload-artifact@v5
with:
name: INTERSECT-macOS-arm64
path: INTERSECT-${{ github.ref_name }}-macOS-arm64.zip
build-macos-x64:
runs-on: macos-15-intel
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Get version
shell: bash
run: echo "PLUGIN_VERSION=$(echo '${{ github.ref_name }}' | sed 's/^v//' | sed 's/-rc\.[0-9]*//')" >> $GITHUB_ENV
- name: Configure
run: cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DINTERSECT_VERSION=${{ env.PLUGIN_VERSION }}
- name: Build
run: cmake --build build --config Release
- name: Codesign
run: |
codesign --force --deep --sign - build/Intersect_artefacts/Release/AU/INTERSECT.component
codesign --force --deep --sign - build/Intersect_artefacts/Release/VST3/INTERSECT.vst3
codesign --force --deep --sign - build/Intersect_artefacts/Release/Standalone/INTERSECT.app
- name: Package
run: |
mkdir staging
cp -r build/Intersect_artefacts/Release/VST3/INTERSECT.vst3 staging/
cp -r build/Intersect_artefacts/Release/Standalone/INTERSECT.app staging/
cp -r build/Intersect_artefacts/Release/AU/INTERSECT.component staging/
cd staging && zip -r ../INTERSECT-${{ github.ref_name }}-macOS-x64.zip .
- uses: actions/upload-artifact@v5
with:
name: INTERSECT-macOS-x64
path: INTERSECT-${{ github.ref_name }}-macOS-x64.zip
release:
needs: [build-windows, build-linux, build-macos-arm64, build-macos-x64]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v5
- name: Extract changelog for this version
run: |
VERSION=$(echo "${{ github.ref_name }}" | sed 's/^v//')
# Extract the section for this version from CHANGELOG.md
# Matches from the version heading to the next heading (or EOF)
awk -v ver="$VERSION" '
/^## \[/ {
if (found) exit
if (index($0, "[" ver "]")) { found=1; next }
}
found { print }
' CHANGELOG.md > release_notes.md
# If no changelog section found, use a default message
if [ ! -s release_notes.md ]; then
echo "Release ${{ github.ref_name }}" > release_notes.md
fi
- uses: actions/download-artifact@v5
with:
path: artifacts
- name: Create Release
uses: softprops/action-gh-release@v2
with:
body_path: release_notes.md
prerelease: ${{ contains(github.ref_name, '-rc') }}
files: |
artifacts/INTERSECT-Windows-x64/INTERSECT-${{ github.ref_name }}-Windows-x64.zip
artifacts/INTERSECT-Linux-x64/INTERSECT-${{ github.ref_name }}-Linux-x64.zip
artifacts/INTERSECT-macOS-arm64/INTERSECT-${{ github.ref_name }}-macOS-arm64.zip
artifacts/INTERSECT-macOS-x64/INTERSECT-${{ github.ref_name }}-macOS-x64.zip