Release portable builds #739
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: CI | |
on: [push, pull_request] | |
jobs: | |
build: | |
name: ${{matrix.config.name}} | |
runs-on: ${{matrix.config.os}} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { | |
name: "Win32-Release", | |
os: windows-latest, | |
cmake_opts: "-A Win32 \ | |
-DALSOFT_TESTS=ON \ | |
-DALSOFT_BUILD_ROUTER=ON \ | |
-DALSOFT_REQUIRE_WINMM=ON \ | |
-DALSOFT_REQUIRE_DSOUND=ON \ | |
-DALSOFT_REQUIRE_WASAPI=ON", | |
build_type: "Release" | |
} | |
- { | |
name: "Win32-Debug", | |
os: windows-latest, | |
cmake_opts: "-A Win32 \ | |
-DALSOFT_TESTS=ON \ | |
-DALSOFT_BUILD_ROUTER=ON \ | |
-DALSOFT_REQUIRE_WINMM=ON \ | |
-DALSOFT_REQUIRE_DSOUND=ON \ | |
-DALSOFT_REQUIRE_WASAPI=ON", | |
build_type: "Debug" | |
} | |
- { | |
name: "Win64-Release", | |
os: windows-latest, | |
cmake_opts: "-A x64 \ | |
-DALSOFT_TESTS=ON \ | |
-DALSOFT_BUILD_ROUTER=ON \ | |
-DALSOFT_REQUIRE_WINMM=ON \ | |
-DALSOFT_REQUIRE_DSOUND=ON \ | |
-DALSOFT_REQUIRE_WASAPI=ON", | |
build_type: "Release" | |
} | |
- { | |
name: "Win64-Debug", | |
os: windows-latest, | |
cmake_opts: "-A x64 \ | |
-DALSOFT_TESTS=ON \ | |
-DALSOFT_BUILD_ROUTER=ON \ | |
-DALSOFT_REQUIRE_WINMM=ON \ | |
-DALSOFT_REQUIRE_DSOUND=ON \ | |
-DALSOFT_REQUIRE_WASAPI=ON", | |
build_type: "Debug" | |
} | |
- { | |
name: "Win64-UWP", | |
os: windows-latest, | |
cmake_opts: "-A x64 \ | |
-DALSOFT_TESTS=OFF \ | |
-DCMAKE_SYSTEM_NAME=WindowsStore \ | |
\"-DCMAKE_SYSTEM_VERSION=10.0\" \ | |
-DALSOFT_BUILD_ROUTER=ON \ | |
-DALSOFT_REQUIRE_WASAPI=ON", | |
build_type: "Release" | |
} | |
- { | |
name: "macOS-Release", | |
os: macos-latest, | |
cmake_opts: "-DALSOFT_REQUIRE_COREAUDIO=ON \ | |
-DALSOFT_TESTS=ON", | |
build_type: "Release" | |
} | |
- { | |
name: "iOS-Release", | |
os: macos-latest, | |
cmake_opts: "-GXcode \ | |
-DCMAKE_SYSTEM_NAME=iOS \ | |
-DALSOFT_REQUIRE_COREAUDIO=ON \ | |
-DALSOFT_UTILS=OFF \ | |
-DALSOFT_EXAMPLES=OFF \ | |
-DALSOFT_TESTS=OFF \ | |
-DALSOFT_INSTALL=OFF \ | |
\"-DCMAKE_OSX_ARCHITECTURES=arm64\"", | |
build_type: "Release" | |
} | |
- { | |
name: "Linux-Release", | |
os: ubuntu-latest, | |
cmake_opts: "-DALSOFT_REQUIRE_RTKIT=ON \ | |
-DALSOFT_REQUIRE_ALSA=ON \ | |
-DALSOFT_REQUIRE_OSS=ON \ | |
-DALSOFT_REQUIRE_PORTAUDIO=ON \ | |
-DALSOFT_REQUIRE_PULSEAUDIO=ON \ | |
-DALSOFT_REQUIRE_JACK=ON \ | |
-DALSOFT_REQUIRE_PIPEWIRE=ON \ | |
-DALSOFT_TESTS=ON", | |
deps_cmdline: "sudo apt update && sudo apt-get install -qq \ | |
libpulse-dev \ | |
portaudio19-dev \ | |
libasound2-dev \ | |
libjack-dev \ | |
libpipewire-0.3-dev \ | |
qtbase5-dev \ | |
libdbus-1-dev", | |
build_type: "Release" | |
} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: '0' | |
- name: Get current commit tag, short hash, count and date | |
run: | | |
echo "CommitTag=$(git describe --tags --abbrev=0 --match *.*.*)" >> $env:GITHUB_ENV | |
echo "CommitHashShort=$(git rev-parse --short=8 HEAD)" >> $env:GITHUB_ENV | |
echo "CommitCount=$(git rev-list --count $env:GITHUB_REF_NAME)" >> $env:GITHUB_ENV | |
echo "CommitDate=$(git show -s --date=iso-local --format=%cd)" >> $env:GITHUB_ENV | |
- name: Install Dependencies | |
shell: bash | |
run: | | |
if [[ ! -z "${{matrix.config.deps_cmdline}}" ]]; then | |
eval ${{matrix.config.deps_cmdline}} | |
fi | |
- name: Configure | |
shell: bash | |
run: | | |
cmake -B build -DCMAKE_BUILD_TYPE=${{matrix.config.build_type}} ${{matrix.config.cmake_opts}} . | |
- name: Build | |
shell: bash | |
run: | | |
cmake --build build --config ${{matrix.config.build_type}} | |
- name: Test | |
shell: bash | |
run: | | |
cd build | |
ctest | |
- name: Create Archive | |
if: ${{ matrix.config.os == 'windows-latest' }} | |
shell: bash | |
run: | | |
cd build | |
mkdir archive | |
mkdir archive/router | |
cp ${{matrix.config.build_type}}/soft_oal.dll archive | |
cp ${{matrix.config.build_type}}/OpenAL32.dll archive/router | |
- name: Upload Archive | |
uses: actions/[email protected] | |
if: ${{ matrix.config.os == 'windows-latest' }} | |
with: | |
name: soft_oal-${{matrix.config.name}} | |
path: build/archive | |
outputs: | |
CommitTag: ${{env.CommitTag}} | |
CommitHashShort: ${{env.CommitHashShort}} | |
CommitCount: ${{env.CommitCount}} | |
CommitDate: ${{env.CommitDate}} | |
release: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download build artifacts | |
uses: actions/[email protected] | |
with: | |
path: "build" | |
pattern: "*-Win??-Release" | |
github-token: "${{secrets.GITHUB_TOKEN}}" | |
- name: Set up build folders | |
run: | | |
mkdir -p build/release/OpenALSoft/Documentation | |
mkdir -p build/release/OpenALSoft/Win32 | |
mkdir -p build/release/OpenALSoft/Win64 | |
echo "${{github.repository}}" >> "build/release/OpenALSoft/Documentation/Version.txt" | |
echo "v${{needs.build.outputs.CommitTag}}-${{needs.build.outputs.CommitHashShort}} ${{github.ref_name}}" >> "build/release/OpenALSoft/Documentation/Version.txt" | |
echo "Commit #${{needs.build.outputs.CommitCount}}" >> "build/release/OpenALSoft/Documentation/Version.txt" | |
echo "${{needs.build.outputs.CommitDate}}" >> "build/release/OpenALSoft/Documentation/Version.txt" | |
curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/README.md -o "build/release/OpenALSoft/Documentation/ReadMe.txt" | |
curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/ChangeLog -o "build/release/OpenALSoft/Documentation/ChangeLog.txt" | |
curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/COPYING -o "build/release/OpenALSoft/Documentation/License.txt" | |
curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/BSD-3Clause -o "build/release/OpenALSoft/Documentation/License_BSD-3Clause.txt" | |
curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/alsoftrc.sample -o "build/release/OpenALSoft/Win32/alsoft.ini" | |
curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/alsoftrc.sample -o "build/release/OpenALSoft/Win64/alsoft.ini" | |
cp "build/soft_oal-Win32-Release/soft_oal.dll" "build/release/OpenALSoft/Win32/OpenAL32.dll" | |
cp "build/soft_oal-Win64-Release/soft_oal.dll" "build/release/OpenALSoft/Win64/OpenAL32.dll" | |
cp -r "build/release/OpenALSoft" "build/release/OpenALSoft+HRTF" | |
curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/configs/HRTF/alsoft.ini -o "build/release/OpenALSoft+HRTF/Win32/alsoft.ini" | |
cp "build/release/OpenALSoft+HRTF/Win32/alsoft.ini" "build/release/OpenALSoft+HRTF/Win64/alsoft.ini" | |
- name: Compress artifacts | |
run: | | |
cd build/release | |
7z a OpenALSoft.zip ./OpenALSoft/* | |
7z a OpenALSoft+HRTF.zip ./OpenALSoft+HRTF/* | |
- name: GitHub pre-release | |
uses: "Sweeistaken/[email protected]" | |
with: | |
repo_token: "${{secrets.GITHUB_TOKEN}}" | |
automatic_release_tag: "latest" | |
prerelease: true | |
title: "OpenAL Soft v${{needs.build.outputs.CommitTag}}-v${{needs.build.outputs.CommitHashShort}}" | |
files: "build/release/*" |