macOS static build #182
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 | |
on: | |
push: | |
paths-ignore: | |
- "**/**.md" | |
pull_request: | |
branches: | |
- master | |
paths-ignore: | |
- "**/**.md" | |
workflow_dispatch: | |
permissions: | |
actions: none | |
checks: none | |
contents: write | |
deployments: none | |
issues: none | |
packages: read | |
pull-requests: none | |
repository-projects: none | |
security-events: none | |
statuses: read | |
defaults: | |
run: | |
shell: bash | |
env: | |
VCPKG_COMMITTISH: 962e5e39f8a25f42522f51fffc574e05a3efd26b | |
jobs: | |
build_windows: | |
name: Windows | |
runs-on: windows-2022 | |
strategy: | |
fail-fast: false | |
env: | |
CMAKE_BUILD_TYPE: Release | |
CMAKE_GENERATOR: Visual Studio 17 2022 | |
VCPKG_TRIPLET: custom-triplet | |
steps: | |
- name: Remove Old VS version (Hack) | |
shell: pwsh | |
run: | | |
Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\" | |
$InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" | |
$componentsToRemove= @( | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.ARM" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.ARM.Spectre" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.ARM64" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.ARM64.Spectre" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.x86.x64" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.x86.x64.Spectre" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.ATL" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.ATL.Spectre" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.ATL.ARM" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.ATL.ARM.Spectre" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.ATL.ARM64" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.ATL.ARM64.Spectre" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.MFC" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.MFC.Spectre" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.MFC.ARM" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.MFC.ARM.Spectre" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.MFC.ARM64" | |
"Microsoft.VisualStudio.Component.VC.14.35.17.5.MFC.ARM64.Spectre" | |
) | |
[string]$workloadArgs = $componentsToRemove | ForEach-Object {" --remove " + $_} | |
$Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache') | |
# should be run twice | |
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden | |
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden | |
- name: Checkout Git repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Setup vcpkg | |
uses: friendlyanon/setup-vcpkg@v1 | |
with: | |
committish: ${{env.VCPKG_COMMITTISH}} | |
- name: Setup Overlays | |
uses: actions/checkout@v3 | |
with: | |
repository: complexlogic/vcpkg | |
ref: refs/heads/rsgain | |
path: build/overlays | |
- name: Configure | |
run: cmake -S . -B build | |
-G "${{env.CMAKE_GENERATOR}}" | |
-DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" | |
-DVCPKG_MANIFEST_FEATURES="ffmpeg;libebur128;inih;" | |
-DVCPKG_OVERLAY_PORTS=build/overlays/ports | |
-DVCPKG_OVERLAY_TRIPLETS=config/vcpkg_triplets | |
-DVCPKG_TARGET_TRIPLET=${{env.VCPKG_TRIPLET}} | |
- name: Build | |
run: | | |
cmake \ | |
--build build \ | |
--target package \ | |
--config ${{ env.CMAKE_BUILD_TYPE }} | |
build/${{env.CMAKE_BUILD_TYPE}}/rsgain.exe -v | |
- name: Upload Package | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Windows build | |
path: build/*.zip | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: build/*.zip | |
build_linux: | |
name: Linux | |
runs-on: ubuntu-latest | |
permissions: | |
packages: write | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: Debian | |
docker_image: debian:bookworm | |
package_type: DEB | |
package_ext: .deb | |
vcpkg_features: fmt; | |
- name: Fedora | |
docker_image: fedora:38 | |
package_type: RPM | |
package_ext: .rpm | |
vcpkg_features: fmt; | |
- name: Static | |
docker_image: debian:bullseye | |
package_type: TXZ | |
package_ext: .tar.xz | |
vcpkg_features: fmt;ffmpeg;libebur128;inih; | |
container: | |
image: ${{matrix.config.docker_image}} | |
env: | |
CMAKE_BUILD_TYPE: Release | |
VCPKG_COMMITISH: 51de327421f4bd99b828a97b4e4adde54db032a6 | |
VCPKG_TRIPLET: x64-linux | |
steps: | |
- name: Checkout Git repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: "Install dependencies" | |
run: | | |
if [[ "${{matrix.config.name}}" == "Debian" ]]; then | |
apt update && apt install -y curl zip unzip tar build-essential git cmake pkg-config libavcodec-dev libavformat-dev libavutil-dev libswresample-dev libebur128-dev libinih-dev binutils | |
fi | |
if [[ "${{matrix.config.name}}" == "Fedora" ]]; then | |
dnf install -y curl zip unzip tar git make pkg-config gcc-c++ fedora-packager rpmdevtools cmake libavcodec-free-devel libavformat-free-devel libswresample-free-devel libavutil-free-devel libebur128-devel inih-devel | |
fi | |
if [[ "${{matrix.config.name}}" == "Static" ]]; then | |
apt update && apt install -y curl zip unzip tar build-essential git cmake pkg-config python3 nasm binutils | |
fi | |
- name: Setup vcpkg | |
uses: friendlyanon/setup-vcpkg@v1 | |
with: | |
committish: ${{env.VCPKG_COMMITTISH}} | |
cache-key: vcpkg-${{matrix.config.name}}-${{env.VCPKG_COMMITISH}} | |
cache-restore-keys: vcpkg-${{matrix.config.name}}-${{env.VCPKG_COMMITISH}} | |
- name: Setup Overlays | |
uses: actions/checkout@v3 | |
with: | |
repository: complexlogic/vcpkg | |
ref: refs/heads/rsgain | |
path: build/overlays | |
- name: Configure | |
run: cmake -S . -B build | |
-DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" | |
-DVCPKG_TARGET_TRIPLET=${{env.VCPKG_TRIPLET}} | |
-DVCPKG_MANIFEST_FEATURES="${{matrix.config.vcpkg_features}}" | |
-DVCPKG_OVERLAY_PORTS=build/overlays/ports | |
-DCMAKE_BUILD_TYPE=${{env.CMAKE_BUILD_TYPE}} | |
-DCMAKE_INSTALL_PREFIX=/usr | |
-DPACKAGE=${{matrix.config.package_type}} | |
-DSTRIP_BINARY=ON | |
- name: Build | |
run: | | |
cmake \ | |
--build build \ | |
--target package | |
build/rsgain -v | |
- name: Upload Package | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{matrix.config.name}} build | |
path: build/*${{matrix.config.package_ext}} | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: build/*${{matrix.config.package_ext}} | |
token: ${{secrets.ACTIONS_SECRET}} | |
build_macos: | |
name: macOS | |
runs-on: macos-12 | |
permissions: | |
packages: write | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: Intel | |
OSX_ARCH: x86_64 | |
VCPKG_TRIPLET: x64-osx | |
- name: Apple Silicon | |
OSX_ARCH: arm64 | |
VCPKG_TRIPLET: arm64-osx | |
env: | |
CMAKE_BUILD_TYPE: Release | |
steps: | |
- name: Checkout Git repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Install Dependencies | |
run: brew install nasm automake autoconf-archive ninja | |
- name: Setup vcpkg | |
uses: friendlyanon/setup-vcpkg@v1 | |
with: | |
committish: ${{env.VCPKG_COMMITTISH}} | |
cache-key: vcpkg-${{matrix.config.name}}-${{env.VCPKG_COMMITISH}} | |
cache-restore-keys: vcpkg-${{matrix.config.name}}-${{env.VCPKG_COMMITISH}} | |
- name: Setup Overlays | |
uses: actions/checkout@v3 | |
with: | |
repository: complexlogic/vcpkg | |
ref: refs/heads/rsgain | |
path: build/overlays | |
- name: Configure | |
run: cmake -S . -B build | |
-DCMAKE_BUILD_TYPE=Release | |
-DCMAKE_OSX_ARCHITECTURES=${{matrix.config.OSX_ARCH}} | |
-DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" | |
-DVCPKG_OVERLAY_PORTS=build/overlays/ports | |
-DVCPKG_TARGET_TRIPLET=${{matrix.config.VCPKG_TRIPLET}} | |
-DVCPKG_MANIFEST_FEATURES="fmt;ffmpeg;libebur128;inih;" | |
-DSTRIP_BINARY=ON | |
-DPACKAGE=ZIP | |
- name: Build | |
run: | | |
cmake \ | |
--build build \ | |
--target package | |
- name: Test | |
if: ${{matrix.config.OSX_ARCH == 'x86_64'}} | |
run: build/rsgain -v | |
- name: Upload Package | |
uses: actions/upload-artifact@v3 | |
with: | |
name: macOS ${{matrix.config.name}} build | |
path: build/*.zip | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: build/*.zip | |
token: ${{secrets.ACTIONS_SECRET}} |