Return the calculated delays from Modulation::calcDelays
[openal-soft.git] / .github / workflows / ci.yml
blobb1c3b413b2cc3c2805f6578ff775fb9b330f307f
1 name: CI
3 on: [push, pull_request]
5 jobs:
6   build:
7     name: ${{matrix.config.name}}
8     runs-on: ${{matrix.config.os}}
9     strategy:
10       fail-fast: false
11       matrix:
12         config:
13         - {
14             name: "Win32-Release",
15             os: windows-latest,
16             cmake_opts: "-A Win32 \
17               -DALSOFT_TESTS=ON \
18               -DALSOFT_BUILD_ROUTER=ON \
19               -DALSOFT_REQUIRE_WINMM=ON \
20               -DALSOFT_REQUIRE_DSOUND=ON \
21               -DALSOFT_REQUIRE_WASAPI=ON",
22             build_type: "Release"
23           }
24         - {
25             name: "Win32-Debug",
26             os: windows-latest,
27             cmake_opts: "-A Win32 \
28               -DALSOFT_TESTS=ON \
29               -DALSOFT_BUILD_ROUTER=ON \
30               -DALSOFT_REQUIRE_WINMM=ON \
31               -DALSOFT_REQUIRE_DSOUND=ON \
32               -DALSOFT_REQUIRE_WASAPI=ON",
33             build_type: "Debug"
34           }
35         - {
36             name: "Win64-Release",
37             os: windows-latest,
38             cmake_opts: "-A x64 \
39               -DALSOFT_TESTS=ON \
40               -DALSOFT_BUILD_ROUTER=ON \
41               -DALSOFT_REQUIRE_WINMM=ON \
42               -DALSOFT_REQUIRE_DSOUND=ON \
43               -DALSOFT_REQUIRE_WASAPI=ON",
44             build_type: "Release"
45           }
46         - {
47             name: "Win64-Debug",
48             os: windows-latest,
49             cmake_opts: "-A x64 \
50               -DALSOFT_TESTS=ON \
51               -DALSOFT_BUILD_ROUTER=ON \
52               -DALSOFT_REQUIRE_WINMM=ON \
53               -DALSOFT_REQUIRE_DSOUND=ON \
54               -DALSOFT_REQUIRE_WASAPI=ON",
55             build_type: "Debug"
56           }
57         - {
58             name: "Win64-UWP",
59             os: windows-latest,
60             cmake_opts: "-A x64 \
61               -DALSOFT_TESTS=OFF \
62               -DCMAKE_SYSTEM_NAME=WindowsStore \
63               \"-DCMAKE_SYSTEM_VERSION=10.0\" \
64               -DALSOFT_BUILD_ROUTER=ON \
65               -DALSOFT_REQUIRE_WASAPI=ON",
66             build_type: "Release"
67           }
68         - {
69             name: "macOS-Release",
70             os: macos-latest,
71             cmake_opts: "-DALSOFT_REQUIRE_COREAUDIO=ON \
72               -DALSOFT_TESTS=ON",
73             build_type: "Release"
74           }
75         - {
76             name: "iOS-Release",
77             os: macos-latest,
78             cmake_opts: "-GXcode \
79             -DCMAKE_SYSTEM_NAME=iOS \
80             -DALSOFT_REQUIRE_COREAUDIO=ON \
81             -DALSOFT_UTILS=OFF \
82             -DALSOFT_EXAMPLES=OFF \
83             -DALSOFT_TESTS=OFF \
84             -DALSOFT_INSTALL=OFF \
85             \"-DCMAKE_OSX_ARCHITECTURES=arm64\"",
86             build_type: "Release"
87           }
88         - {
89             name: "Linux-Release",
90             os: ubuntu-latest,
91             cmake_opts: "-DALSOFT_REQUIRE_RTKIT=ON \
92               -DALSOFT_REQUIRE_ALSA=ON \
93               -DALSOFT_REQUIRE_OSS=ON \
94               -DALSOFT_REQUIRE_PORTAUDIO=ON \
95               -DALSOFT_REQUIRE_PULSEAUDIO=ON \
96               -DALSOFT_REQUIRE_JACK=ON \
97               -DALSOFT_REQUIRE_PIPEWIRE=ON \
98               -DALSOFT_TESTS=ON",
99             deps_cmdline: "sudo apt update && sudo apt-get install -qq \
100               libpulse-dev \
101               portaudio19-dev \
102               libasound2-dev \
103               libjack-dev \
104               libpipewire-0.3-dev \
105               qtbase5-dev \
106               libdbus-1-dev",
107             build_type: "Release"
108           }
110     steps:
111     - uses: actions/checkout@v3
113     - name: Install Dependencies
114       shell: bash
115       run: |
116         if [[ ! -z "${{matrix.config.deps_cmdline}}" ]]; then
117           eval ${{matrix.config.deps_cmdline}}
118         fi
120     - name: Configure
121       shell: bash
122       run: |
123         cmake -B build -DCMAKE_BUILD_TYPE=${{matrix.config.build_type}} ${{matrix.config.cmake_opts}} .
125     - name: Build
126       shell: bash
127       run: |
128         cmake --build build --config ${{matrix.config.build_type}}
130     - name: Test
131       shell: bash
132       run: |
133         cd build
134         ctest
136     - name: Create Archive
137       if: ${{ matrix.config.os == 'windows-latest' }}
138       shell: bash
139       run: |
140         cd build
141         mkdir archive
142         mkdir archive/router
143         cp ${{matrix.config.build_type}}/soft_oal.dll archive
144         cp ${{matrix.config.build_type}}/OpenAL32.dll archive/router
146     - name: Upload Archive
147       # Upload package as an artifact of this workflow.
148       uses: actions/upload-artifact@v3.1.2
149       if: ${{ matrix.config.os == 'windows-latest' }}
150       with:
151         name: soft_oal-${{matrix.config.name}}
152         path: build/archive