@@ -167,3 +167,119 @@ jobs:
167167 with :
168168 path : ${{ github.workspace }}/.ccache
169169 key : ${{ runner.os }}-ccache-${{ matrix.target }}-${{ needs.check-event.outputs.config }}
170+
171+
172+ ubuntu-build :
173+ name : Ubuntu 🐧
174+ strategy :
175+ matrix :
176+ os : [ubuntu-24.04]
177+ runs-on : ${{ matrix.os }}
178+ needs : check-event
179+ defaults :
180+ run :
181+ shell : bash
182+ steps :
183+ - uses : actions/checkout@v4
184+ with :
185+ submodules : recursive
186+ fetch-depth : 0
187+
188+ - uses : actions/cache/restore@v4
189+ id : ccache-cache
190+ with :
191+ path : ${{ github.workspace }}/.ccache
192+ key : ${{ runner.os }}-${{ matrix.os }}-ccache-x86_64-${{ needs.check-event.outputs.config }}
193+ restore-keys : |
194+ ${{ runner.os }}-${{ matrix.os }}-ccache-x86_64-
195+ - name : Build OBS Studio 🧱
196+ uses : ./.github/actions/build-obs
197+ env :
198+ TWITCH_CLIENTID : ${{ secrets.TWITCH_CLIENT_ID }}
199+ TWITCH_HASH : ${{ secrets.TWITCH_HASH }}
200+ RESTREAM_CLIENTID : ${{ secrets.RESTREAM_CLIENTID }}
201+ RESTREAM_HASH : ${{ secrets.RESTREAM_HASH }}
202+ YOUTUBE_CLIENTID : ${{ secrets.YOUTUBE_CLIENTID }}
203+ YOUTUBE_CLIENTID_HASH : ${{ secrets.YOUTUBE_CLIENTID_HASH }}
204+ YOUTUBE_SECRET : ${{ secrets.YOUTUBE_SECRET }}
205+ YOUTUBE_SECRET_HASH : ${{ secrets.YOUTUBE_SECRET_HASH }}
206+ with :
207+ target : x86_64
208+ config : ${{ needs.check-event.outputs.config }}
209+
210+ - name : Package OBS Studio 📀
211+ uses : ./.github/actions/package-obs
212+ with :
213+ target : x86_64
214+ config : ${{ needs.check-event.outputs.config }}
215+ package : ${{ fromJSON(needs.check-event.outputs.package) }}
216+
217+ - name : Upload Source Tarball 🗜️
218+ uses : actions/upload-artifact@v4
219+ with :
220+ name : obs-studio-${{ matrix.os }}-sources-${{ needs.check-event.outputs.commitHash }}
221+ path : ${{ github.workspace }}/build_ubuntu/obs-studio-*-sources.*
222+
223+ - name : Upload Artifacts 📡
224+ uses : actions/upload-artifact@v4
225+ with :
226+ name : obs-studio-${{ matrix.os }}-x86_64-${{ needs.check-event.outputs.commitHash }}
227+ path : ${{ github.workspace }}/build_ubuntu/obs-studio-*-x86_64-ubuntu-gnu.*
228+
229+ - name : Upload Debug Symbol Artifacts 🪲
230+ uses : actions/upload-artifact@v4
231+ if : ${{ fromJSON(needs.check-event.outputs.package) }}
232+ with :
233+ name : obs-studio-${{ matrix.os }}-x86_64-${{ needs.check-event.outputs.commitHash }}-dbgsym
234+ path : ${{ github.workspace }}/build_ubuntu/obs-studio-*-x86_64-ubuntu-gnu-dbgsym.ddeb
235+
236+ - uses : actions/cache/save@v4
237+ if : github.event_name != 'pull_request' && steps.ccache-cache.outputs.cache-hit != 'true'
238+ with :
239+ path : ${{ github.workspace }}/.ccache
240+ key : ${{ runner.os }}-${{ matrix.os }}-ccache-x86_64-${{ needs.check-event.outputs.config }}
241+
242+ windows-build :
243+ name : Windows 🪟
244+ strategy :
245+ matrix :
246+ architecture : [x64, arm64]
247+ runs-on : windows-2022
248+ needs : check-event
249+ defaults :
250+ run :
251+ shell : pwsh
252+ steps :
253+ - uses : actions/checkout@v4
254+ with :
255+ submodules : recursive
256+ fetch-depth : 0
257+
258+ - name : Build OBS Studio 🧱
259+ uses : ./.github/actions/build-obs
260+ env :
261+ TWITCH_CLIENTID : ${{ secrets.TWITCH_CLIENT_ID }}
262+ TWITCH_HASH : ${{ secrets.TWITCH_HASH }}
263+ RESTREAM_CLIENTID : ${{ secrets.RESTREAM_CLIENTID }}
264+ RESTREAM_HASH : ${{ secrets.RESTREAM_HASH }}
265+ YOUTUBE_CLIENTID : ${{ secrets.YOUTUBE_CLIENTID }}
266+ YOUTUBE_CLIENTID_HASH : ${{ secrets.YOUTUBE_CLIENTID_HASH }}
267+ YOUTUBE_SECRET : ${{ secrets.YOUTUBE_SECRET }}
268+ YOUTUBE_SECRET_HASH : ${{ secrets.YOUTUBE_SECRET_HASH }}
269+ GPU_PRIORITY_VAL : ${{ secrets.GPU_PRIORITY_VAL }}
270+ with :
271+ target : ${{ matrix.architecture }}
272+ config : ${{ needs.check-event.outputs.config }}
273+
274+ - name : Package OBS Studio 📀
275+ uses : ./.github/actions/package-obs
276+ with :
277+ target : ${{ matrix.architecture }}
278+ config : ${{ needs.check-event.outputs.config }}
279+ package : ${{ fromJSON(needs.check-event.outputs.package) }}
280+
281+ - name : Upload Artifacts 📡
282+ uses : actions/upload-artifact@v4
283+ with :
284+ name : obs-studio-windows-${{ matrix.architecture }}-${{ needs.check-event.outputs.commitHash }}
285+ path : ${{ github.workspace }}/build_${{ matrix.architecture }}/obs-studio-*-windows-${{ matrix.architecture }}.zip
0 commit comments