Skip to content

chore: 0.7.6 release #68

chore: 0.7.6 release

chore: 0.7.6 release #68

Workflow file for this run

name: CMake
on:
push:
tags:
- '*'
pull_request:
branches: [ master ]
workflow_dispatch:
env:
BUILD_TYPE: Release
BUILD_DIR: ${{ github.workspace }}/build
PROJECT_NAME: ScaleRemapper
IOS_NAME: iOS
jobs:
build:
strategy:
matrix:
runner: ['windows', 'ubuntu', 'macos']
runs-on: ${{ matrix.runner }}-latest
name: ${{ matrix.runner }}
steps:
- name: Checkout Source Code
uses: actions/checkout@v4
with:
token: ${{ secrets.GH_PAT }}
submodules: 'recursive'
- name: Set Up Node.js
uses: actions/setup-node@v4
with:
node-version: latest
- name: Set Up Yarn
run: npm install -g yarn
- name: Install UI Dependencies
working-directory: ./ui
run: yarn install
- name: Build UI Bundle
working-directory: ./ui
run: yarn build
- name: Install Linux Deps
if: runner.os == 'Linux'
run: |
sudo apt-get update && \
sudo apt install \
libasound2-dev \
libcurl4-openssl-dev \
libx11-dev \
libxinerama-dev \
libxext-dev \
libfreetype6-dev \
libwebkit2gtk-4.0-dev \
libglu1-mesa-dev
- name: Patch Blocks
working-directory: ./external/roli_blocks_basics
run: git apply --reject --whitespace=fix -v ../../scripts/patches/roli.patch
- name: Patch React-Juce
working-directory: ./external/react-juce
run: git apply --reject --whitespace=fix -v ../../scripts/patches/react.patch
- name: Configure CMake
run: >
cmake
-B ${{ env.BUILD_DIR }}
-D CMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}
- name: Build
run: >
cmake
--build ${{ env.BUILD_DIR }}
--config ${{ env.BUILD_TYPE }}
- name: Zip (Mac)
if: runner.os == 'macOS'
working-directory: ${{ env.BUILD_DIR }}/${{ env.PROJECT_NAME }}_artefacts/${{ env.BUILD_TYPE }}
run: >
cmake
-E tar cv ${{ env.BUILD_DIR }}/${{ env.PROJECT_NAME }}_${{ matrix.runner }}.7z
--format=7zip
Standalone/
VST3/${{ env.PROJECT_NAME }}.vst3
AU/${{ env.PROJECT_NAME }}.component
- name: Zip (non Mac)
if: runner.os != 'macOS'
working-directory: ${{ env.BUILD_DIR }}/${{ env.PROJECT_NAME }}_artefacts/${{ env.BUILD_TYPE }}
run: >
cmake
-E tar cv ${{ env.BUILD_DIR }}/${{ env.PROJECT_NAME }}_${{ matrix.runner }}.7z
--format=7zip
Standalone/
LV2/${{ env.PROJECT_NAME }}.lv2
VST3/${{ env.PROJECT_NAME }}.vst3
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ env.PROJECT_NAME }}_${{ matrix.runner }}
path: ${{ env.BUILD_DIR }}/${{ env.PROJECT_NAME }}_${{ matrix.runner }}.7z
if-no-files-found: error
retention-days: 1
- name: Configure CMake (iOS)
if: runner.os == 'macOS'
run: |
cmake \
-B ${{ env.BUILD_DIR }}_${{ env.IOS_NAME }} \
-G Xcode \
-D CMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \
-D CMAKE_SYSTEM_NAME=${{ env.IOS_NAME }} \
-D CMAKE_OSX_DEPLOYMENT_TARGET=15.0 \
-D CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY="" \
-D CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=NO \
-D CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO
- name: Build (iOS)
if: runner.os == 'macOS'
run: |
cmake \
--build ${{ env.BUILD_DIR }}_${{ env.IOS_NAME }} \
--config=${{ env.BUILD_TYPE }} \
-- -allowProvisioningUpdates
- name: Prepare payload for .ipa (iOS)
if: runner.os == 'macOS'
run: |
mkdir -p ${{ runner.temp }}/Payload
mv \
${{ env.BUILD_DIR }}_${{ env.IOS_NAME }}/${{ env.PROJECT_NAME }}_artefacts/${{ env.BUILD_TYPE }}/Standalone/${{ env.PROJECT_NAME }}.app \
${{ runner.temp }}/Payload/${{ env.PROJECT_NAME }}.app
- name: Zip (iOS)
if: runner.os == 'macOS'
working-directory: ${{ runner.temp }}
run: |
cmake \
-E tar cv ${{ runner.temp }}/${{ env.PROJECT_NAME }}.ipa \
--format=zip \
Payload/
- name: Upload artifacts (iOS)
if: runner.os == 'macOS'
uses: actions/upload-artifact@v4
with:
name: ${{ env.PROJECT_NAME }}_${{ env.IOS_NAME }}
path: ${{ runner.temp }}/${{ env.PROJECT_NAME }}.ipa
if-no-files-found: error
retention-days: 1
release:
if: contains(github.ref, 'tags/v')
runs-on: ubuntu-latest
needs: build
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Get Tag
id: tag
uses: dawidd6/action-get-tag@v1
with:
strip_v: true
- name: Checkout Source Code
uses: actions/checkout@v4
- name: Extract Release Notes
id: extract-release-notes
uses: ffurrer2/extract-release-notes@v1
- name: Download All Artifacts
uses: actions/download-artifact@v4
- uses: ncipollo/release-action@v1
with:
artifacts: "${{ env.PROJECT_NAME }}*/*.7z"
artifactContentType: application/zip
token: ${{ secrets.GH_RELEASE }}
name: ${{ steps.tag.outputs.tag }}
body: ${{ steps.extract-release-notes.outputs.release_notes }}
prerelease: true