Skip to content

Update CI

Update CI #196

Workflow file for this run

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: 37c3e63a1306562f7f59c4c3c8892ddd50fdf992
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: 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_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 gzip 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 gzip 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
-DINSTALL_MANPAGE=${{matrix.config.name == 'Static' && 'OFF' || '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
-DCPACK_SYSTEM_NAME="macOS-${{matrix.config.OSX_ARCH}}"
- 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}}