More version work #286
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Six Sines | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- 'v**' | |
pull_request: | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
build_plugin: | |
name: Build - ${{ matrix.name }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
- os: windows-latest | |
name: windows-x64 | |
cmake_args: -DCMAKE_CXX_COMPLIER=clang++ -DCMAKE_C_COMPILER=clang -GNinja | |
- os: macos-latest | |
name: macos | |
cmake_args: -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -GNinja | |
- os: ubuntu-latest | |
name: linux-x64 | |
cmake_args: -GNinja | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Prepare for JUCE | |
uses: surge-synthesizer/sst-githubactions/prepare-for-juce@main | |
with: | |
os: ${{ runner.os }} | |
- uses: apple-actions/import-codesign-certs@v3 | |
if: runner.os == 'macOS' && github.event_name != 'pull_request' | |
with: | |
p12-file-base64: ${{ secrets.MAC_CERTS_P12 }} | |
p12-password: ${{ secrets.CERT_PWD }} | |
- name: Build release version | |
if: github.event_name != 'pull_request' | |
run: | | |
cmake -S . -B ./build ${{ matrix.cmake_args }} -DCMAKE_BUILD_TYPE=Release -DCOPY_AFTER_BUILD=FALSE -DGITHUB_ACTIONS_BUILD=TRUE | |
cmake --build ./build --config Release --target six-sines_all --parallel 3 | |
- name: Make windows zip | |
if: github.event_name != 'pull_request' && runner.os == 'Windows' | |
run: | | |
mkdir build/inst | |
mkdir build/insttmp | |
mv build/CLAP/*.clap build/insttmp | |
mv build/*.vst3 build/insttmp | |
mv build/*.exe build/insttmp | |
pushd build/insttmp | |
ls -al | |
popd | |
7z a -r build/inst/six-sines-windows-`date +"%Y-%m-%d"`-`git rev-parse --short HEAD`.zip build/insttmp/* | |
- name: Make linux tgz | |
if: github.event_name != 'pull_request' && runner.os == 'Linux' | |
run: | | |
find build -name "Six Sines*" -print | |
mkdir build/inst | |
mkdir build/insttmp | |
mv build/*.clap build/insttmp | |
mv "build/Six Sines" build/insttmp | |
mv build/Release/*.vst3 build/insttmp | |
find build -name "Six Sines*" -print | |
cd build/insttmp | |
ls -al | |
tar cvzf ../inst/six-sines-linux-`date +"%Y-%m-%d"`-`git rev-parse --short HEAD`.tgz . | |
- name: Make Mac | |
if: github.event_name != 'pull_request' && runner.os == 'macOS' | |
run: | | |
export MAC_SIGNING_CERT="${{ secrets.MAC_SIGNING_CERT_NAME }}" | |
export MAC_INSTALLING_CERT="${{ secrets.MAC_INSTALLING_CERT_NAME }}" | |
export MAC_SIGNING_ID="${{ secrets.MAC_SIGNING_ID }}" | |
export MAC_SIGNING_1UPW="${{ secrets.MAC_SIGNING_1UPW }}" | |
export MAC_SIGNING_TEAM="${{ secrets.MAC_SIGNING_TEAM }}" | |
mkdir build/inst | |
cd build | |
../libs/sst/sst-plugininfra/scripts/installer_mac/make_installer.sh "Six Sines" . ../resources/mac_installer inst `date +"%Y-%m-%d"`-`git rev-parse --short HEAD` | |
codesign -d --entitlement - installer-tmp/APP/Six\ Sines.app | |
- name: Configure pull request version | |
if: github.event_name == 'pull_request' | |
run: | | |
cmake -S . -B ./build ${{ matrix.cmake_args }} -DCMAKE_BUILD_TYPE=Debug -DCOPY_AFTER_BUILD=FALSE -DGITHUB_ACTIONS_BUILD=TRUE | |
- name: Build pull request version | |
if: github.event_name == 'pull_request' | |
run: | | |
cmake --build ./build --config Debug --target six-sines_all --parallel 3 | |
- name: Find all the six sines | |
run: | | |
find build -name "Six Sines*" -print | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
path: build/inst | |
name: dawplugin-${{ matrix.name }} | |
publish-plugin-nightly: | |
name: Publish Nightlu | |
if: ${{ github.ref == 'refs/heads/main' && github.repository_owner == 'baconpaul' }} | |
runs-on: ubuntu-latest | |
needs: [build_plugin] | |
steps: | |
- name: Upload to Nightly | |
uses: surge-synthesizer/sst-githubactions/upload-to-release@main | |
with: | |
tag: Nightly | |
reuse_tag: true | |
create_tag: false | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Post to Discord | |
uses: surge-synthesizer/sst-githubactions/discord-release-notify@main | |
with: | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
tag: Nightly | |
title: "A New Six Sines Nightly is Available" | |
subtitle: "Have fun!" | |
publish-plugin-release: | |
name: Publish Release | |
if: startsWith(github.ref, 'refs/tags/v') && github.repository_owner == 'baconpaul' | |
runs-on: ubuntu-latest | |
needs: [build_plugin] | |
steps: | |
- name: Upload to Release | |
uses: surge-synthesizer/sst-githubactions/upload-to-release@main | |
with: | |
tag: ${{ github.ref_name }} | |
reuse_tag: false | |
create_tag: true | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Post to Discord | |
uses: surge-synthesizer/sst-githubactions/discord-release-notify@main | |
with: | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
tag: ${{ github.ref_name }} | |
title: "A New Six Sines Release is Available" | |
subtitle: "But really, what does stable mean?" |