Base .deb packages on Debian Bookworm #129
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: | |
defaults: | |
run: | |
shell: bash | |
permissions: | |
actions: none | |
checks: none | |
contents: write | |
deployments: none | |
issues: none | |
packages: read | |
pull-requests: none | |
repository-projects: none | |
security-events: none | |
statuses: read | |
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 | |
- name: Setup vcpkg | |
uses: friendlyanon/setup-vcpkg@v1 | |
with: { committish: 51de327421f4bd99b828a97b4e4adde54db032a6 } | |
- 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_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 | |
- name: Fedora | |
docker_image: fedora:38 | |
package_type: RPM | |
package_ext: .rpm | |
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 | |
- 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 | |
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 taglib-devel inih-devel | |
fi | |
- name: Setup vcpkg | |
uses: friendlyanon/setup-vcpkg@v1 | |
with: | |
committish: ${{env.VCPKG_COMMITISH}} | |
cache-key: vcpkg-${{matrix.config.name}}-${{env.VCPKG_COMMITISH}} | |
cache-restore-keys: vcpkg-${{matrix.config.name}}-${{env.VCPKG_COMMITISH}} | |
- name: Configure | |
run: cmake -S . -B build | |
-DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" | |
-DVCPKG_TARGET_TRIPLET=${{env.VCPKG_TRIPLET}} | |
-DCMAKE_BUILD_TYPE=${{env.CMAKE_BUILD_TYPE}} | |
-DCMAKE_INSTALL_PREFIX=/usr | |
-DPACKAGE=${{matrix.config.package_type}} | |
- 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 | |
env: | |
CMAKE_BUILD_TYPE: Release | |
steps: | |
- name: Checkout Git repository | |
uses: actions/checkout@v3 | |
- name: "Install dependencies" | |
run: | | |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | |
brew install libebur128 taglib ffmpeg fmt inih cmake pkg-config || true | |
- name: Configure | |
run: cmake -S . -B build | |
-DCMAKE_BUILD_TYPE=${{env.CMAKE_BUILD_TYPE}} | |
-DCMAKE_INSTALL_PREFIX=/usr | |
- name: Build | |
run: | | |
cmake \ | |
--build build \ | |
--config ${{env.CMAKE_BUILD_TYPE}} | |
build/rsgain -v |