Skip to content

Update#57

Merged
Lunix-420 merged 6 commits into
developmentfrom
main
May 9, 2026
Merged

Update#57
Lunix-420 merged 6 commits into
developmentfrom
main

Conversation

@Lunix-420

Copy link
Copy Markdown
Collaborator

No description provided.

Comment on lines +30 to +115
runs-on: windows-latest
steps:
- name: Export Variables
run: |
echo "BUILD_ARTIFACTS_DIR=$BUILD_DIR/src/${{env.PROJECT_NAME}}Plugin_artefacts/Release" >> $GITHUB_ENV
echo "WINDOWS-PACKAGE=${{env.BUNDLE_NAME}}-windows.exe" >> $GITHUB_ENV

- name: Checkout Code
uses: actions/checkout@v4

- name: Read Version
run: |
echo "VERSION=$(tr -d '[:space:]' < VERSION.md)" >> $GITHUB_ENV

- name: Setup MSVC
uses: TheMrMilchmann/setup-msvc-dev@v3
with:
arch: x64
spectre: true

- name: Set Up Windows
run: |
choco install ninja
choco install innosetup

- name: Cache IPP (Windows)
id: cache-ipp
uses: actions/cache@v4
with:
key: ipp-2026-0-0-193
path: C:\Program Files (x86)\Intel

- name: Install IPP (Windows)
if: steps.cache-ipp.outputs.cache-hit != 'true'
run: |
curl --output intel-oneapi-toolkit-2026.0.0.193_offline.exe https://registrationcenter-download.intel.com/akdlm/IRC_NAS/bae85ab1-cfcd-4251-8d42-a0c27949ea33/intel-oneapi-toolkit-2026.0.0.193_offline.exe
./intel-oneapi-toolkit-2026.0.0.193_offline.exe -s -a --silent --eula accept -p=NEED_VS2022_INTEGRATION=1

- name: Save IPP cache
if: steps.cache-ipp.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
path: C:\Program Files (x86)\Intel
key: ipp-2026-0-0-193

- name: Select CMake Preset
run: |
cmake --preset "Windows Debug"

- name: Build
run: cmake --build build --config "Debug"

- name: Copy Build Artifacts
run: |
mkdir -p artifacts
ls -la ${{env.BUILD_ARTIFACTS_DIR}}/VST3
cp -r ${{env.BUILD_ARTIFACTS_DIR}}/VST3/${{env.PROJECT_NAME}}.vst3 \
artifacts/
ls -la ${{env.BUILD_ARTIFACTS_DIR}}/CLAP
cp -r ${{env.BUILD_ARTIFACTS_DIR}}/CLAP/${{env.PROJECT_NAME}}.clap \
artifacts/
shell: bash

- name: Create Installer
run: |
# Create the packaging directory
mkdir -p packaging

# Create the Inno Setup
envsubst < pkg/windows/Setup.iss > packaging/Setup.iss
iscc packaging/Setup.iss

# Move the installer to the artifacts directory
mv packaging/Output/"${{env.PROJECT_NAME}}_Setup.exe" artifacts/${{env.WINDOWS-PACKAGE}}
shell: bash

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-windows
path: artifacts

#=========================================================================================
# macOS Build
#=========================================================================================
build-macos:
Comment on lines +116 to +252
runs-on: macos-latest
steps:
- name: Export Variables
run: |
echo "BUILD_ARTIFACTS_DIR=$BUILD_DIR/src/${{env.PROJECT_NAME}}Plugin_artefacts/Release" >> $GITHUB_ENV
echo "MAC_PACKAGE=${{env.BUNDLE_NAME}}-macos.pkg" >> $GITHUB_ENV

- name: Checkout Code
uses: actions/checkout@v4

- name: Read Version
run: |
echo "VERSION=$(tr -d '[:space:]' < VERSION.md)" >> $GITHUB_ENV

- name: Set Up Mac
run: brew install ninja osxutils

- name: Select CMake Preset
run: |
cmake --preset "Mac Release" \
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64"

- name: Build
run: cmake --build build --config "Release"

- name: Copy Build Artifacts
run: |
mkdir -p artifacts
cp -r ${{env.BUILD_ARTIFACTS_DIR}}/VST3/${{env.PROJECT_NAME}}.vst3 \
artifacts/
cp -r ${{env.BUILD_ARTIFACTS_DIR}}/CLAP/${{env.PROJECT_NAME}}.clap \
artifacts/
cp -r ${{env.BUILD_ARTIFACTS_DIR}}/AU/${{env.PROJECT_NAME}}.component \
artifacts/
shell: bash

- name: Import Certificates
uses: sudara/basic-macos-keychain-action@v1
id: keychain
with:
dev-id-app-cert: ${{ secrets.DEV_ID_APP_CERT }}
dev-id-app-password: ${{ secrets.DEV_ID_PASSWORD }}
dev-id-installer-cert: ${{ secrets.DEV_ID_INSTALL_CERT }}
dev-id-installer-password: ${{ secrets.DEV_ID_PASSWORD }}

- name: Codesign (macOS)
run: |
# Set variables
VST3_BIN="artifacts/${{env.PROJECT_NAME}}.vst3/Contents/MacOS/${{env.PROJECT_NAME}}"
CLAP_BIN="artifacts/${{env.PROJECT_NAME}}.clap/Contents/MacOS/${{env.PROJECT_NAME}}"
AU_BIN="artifacts/${{env.PROJECT_NAME}}.component/Contents/MacOS/${{env.PROJECT_NAME}}"

# Codesign the binaries
codesign \
--force -s "${{secrets.DEVELOPER_ID_APPLICATION}}" \
-v "$VST3_BIN" \
--deep --strict --options=runtime --timestamp
codesign \
--force -s "${{secrets.DEVELOPER_ID_APPLICATION}}" \
-v "$CLAP_BIN" \
--deep --strict --options=runtime --timestamp
codesign \
--force -s "${{secrets.DEVELOPER_ID_APPLICATION}}" \
-v "$AU_BIN" \
--deep --strict --options=runtime --timestamp
shell: bash

- name: Create Installer
run: |
# Set variables
VST3_PATH="artifacts/${{env.PROJECT_NAME}}.vst3"
CLAP_PATH="artifacts/${{env.PROJECT_NAME}}.clap"
AU_PATH="artifacts/${{env.PROJECT_NAME}}.component"
PACKAGE_NAME="${{env.PROJECT_NAME}}-macos.pkg"

# Create the packaging directory
mkdir -p packaging

# Create the distribution file
envsubst < pkg/mac/distribution.xml > packaging/distribution.xml

# Create the VST subpackage
pkgbuild \
--identifier "${{env.BUNDLE_ID}}.vst3.pkg" \
--version "$VERSION" \
--component "$VST3_PATH" \
--install-location "/Library/Audio/Plug-Ins/VST3" \
"packaging/${{env.PROJECT_NAME}}.vst3.pkg"

# Create the CLAP subpackage
pkgbuild \
--identifier "${{env.BUNDLE_ID}}.clap.pkg" \
--version "$VERSION" \
--component "$CLAP_PATH" \
--install-location "/Library/Audio/Plug-Ins/CLAP" \
"packaging/${{env.PROJECT_NAME}}.clap.pkg"

# Create the AU subpackage
pkgbuild \
--identifier "${{env.BUNDLE_ID}}.au.pkg" \
--version "$VERSION" \
--component "$AU_PATH" \
--install-location "/Library/Audio/Plug-Ins/Components" \
"packaging/${{env.PROJECT_NAME}}.au.pkg"

# Create the main package
cd packaging
productbuild \
--resources ./resources \
--distribution distribution.xml \
--sign "${{secrets.DEVELOPER_ID_INSTALLER}}" \
--timestamp "${{env.PROJECT_NAME}}.pkg"

# Notarize the package
xcrun notarytool submit "${{env.PROJECT_NAME}}.pkg" \
--apple-id ${{secrets.NOTARIZATION_USERNAME}} \
--password ${{secrets.NOTARIZATION_PASSWORD}} \
--team-id ${{secrets.TEAM_ID}} \
--wait

# Staple the package
xcrun stapler staple "${{env.PROJECT_NAME}}.pkg"

# Move the package to the artifacts directory
mv ${{env.PROJECT_NAME}}.pkg ../artifacts/${{env.MAC_PACKAGE}}
shell: bash

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-macos
path: artifacts

#=========================================================================================
# Ubuntu Linux Build
#=========================================================================================
build-ubuntu:
Comment on lines +253 to +361
runs-on: ubuntu-latest
steps:
- name: Export Variables
run: |
echo "BUILD_ARTIFACTS_DIR=$BUILD_DIR/src/${{env.PROJECT_NAME}}Plugin_artefacts/Release" >> $GITHUB_ENV
echo "UBUNTU_PACKAGE=${{env.BUNDLE_NAME}}-linux-ubuntu.deb" >> $GITHUB_ENV
echo "LINUX_PACKAGE=${{env.BUNDLE_NAME}}-linux-vanilla.zip" >> $GITHUB_ENV

- name: Checkout Code
uses: actions/checkout@v4

- name: Read Version
run: |
echo "VERSION=$(tr -d '[:space:]' < VERSION.md)" >> $GITHUB_ENV

- name: Set Up Linux
run: |
sudo apt-get update
sudo apt-get install ninja-build
sudo apt install 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
sudo apt install curl
sudo apt-get install -y dpkg-dev devscripts
sudo /usr/bin/Xvfb $DISPLAY &
shell: bash

- name: Select CMake Preset
run: |
cmake --preset "Linux Release"

- name: Build
run: cmake --build build --config "Release"

- name: Copy Artifacts
run: |
mkdir -p artifacts
cp -r ${{env.BUILD_ARTIFACTS_DIR}}/VST3/${{env.PROJECT_NAME}}.vst3 \
artifacts/
cp -r ${{env.BUILD_ARTIFACTS_DIR}}/CLAP/${{env.PROJECT_NAME}}.clap \
artifacts/
cp -r ${{env.BUILD_ARTIFACTS_DIR}}/LV2/${{env.PROJECT_NAME}}.lv2 \
artifacts/
shell: bash

- name: Package Linux Artifacts
run: |
# Set variables
UBUNTU_PACKAGE_DIR="${{env.BUNDLE_NAME}}-linux-ubuntu"
UBUNTU_CONTROL_FILE="pkg/ubuntu/control"
VST3_INSTALL_DIR="/usr/lib/vst3/${{env.PROJECT_NAME}}"
CLAP_INSTALL_DIR="/usr/lib/clap/${{env.PROJECT_NAME}}"
LV2_INSTALL_DIR="/usr/lib/lv2/${{env.PROJECT_NAME}}"

# Create Vanilla package directory
mkdir -p vanilla
cp -r artifacts/${{env.PROJECT_NAME}}.vst3 vanilla/
cp -r artifacts/${{env.PROJECT_NAME}}.clap vanilla/
cp -r artifacts/${{env.PROJECT_NAME}}.lv2 vanilla/

# Zip and move the package to the artifacts directory
zip -r ${{env.LINUX_PACKAGE}} vanilla/*
mv ${{env.LINUX_PACKAGE}} artifacts/$LINUX_PACKAGE

# Create Debian package directory
mkdir -p $UBUNTU_PACKAGE_DIR/DEBIAN
mkdir -p $UBUNTU_PACKAGE_DIR/$VST3_INSTALL_DIR
mkdir -p $UBUNTU_PACKAGE_DIR/$CLAP_INSTALL_DIR
mkdir -p $UBUNTU_PACKAGE_DIR/$LV2_INSTALL_DIR

# Copy files to Debian package directory
cp -r artifacts/${{env.PROJECT_NAME}}.vst3 \
$UBUNTU_PACKAGE_DIR/$VST3_INSTALL_DIR/
cp -r artifacts/${{env.PROJECT_NAME}}.clap \
$UBUNTU_PACKAGE_DIR/$CLAP_INSTALL_DIR/
cp -r artifacts/${{env.PROJECT_NAME}}.lv2 \
$UBUNTU_PACKAGE_DIR/$LV2_INSTALL_DIR/

# Set PACKAGE_NAME for envsubst
export PACKAGE_NAME=${{env.BUNDLE_NAME}}
export PACKAGE_VERSION=$VERSION

# Replace PACKAGE_NAME in control file and copy to Debian package directory
envsubst < $UBUNTU_CONTROL_FILE > $UBUNTU_PACKAGE_DIR/DEBIAN/control

# Build Debian package
dpkg-deb --build $UBUNTU_PACKAGE_DIR

# Move the package to the artifacts directory
cp -r *.deb artifacts/${{env.UBUNTU_PACKAGE}}
shell: bash

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-ubuntu
path: artifacts
@Lunix-420 Lunix-420 merged commit 55b22c0 into development May 9, 2026
5 of 9 checks passed
Lunix-420 added a commit that referenced this pull request May 9, 2026
Merge pull request #57 from Dimethoxy/main
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants