mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-06-11 09:19:22 -04:00
In preparation for macOS 27 and to fix existing build errors when Swift 6 (rather than Swift 6.1 is used) to build the project, force use of macOS 26 runners as well as Xcode 26.5 for CI.
152 lines
5.3 KiB
YAML
152 lines
5.3 KiB
YAML
name: Dispatch
|
|
run-name: Dispatched Repository Actions - ${{ inputs.job }} ⌛️
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
job:
|
|
description: Dispatch job to run
|
|
required: true
|
|
type: choice
|
|
options:
|
|
- steam
|
|
- services
|
|
- translations
|
|
- documentation
|
|
- patches
|
|
ref:
|
|
description: GitHub reference to use for job
|
|
type: string
|
|
required: false
|
|
customAssetWindows:
|
|
description: Custom Windows build for Steam Upload
|
|
type: string
|
|
required: false
|
|
customAssetMacOSApple:
|
|
description: Custom macOS Apple Silicon build for Steam Upload
|
|
type: string
|
|
required: false
|
|
customAssetMacOSIntel:
|
|
description: Custom macOS Intel build for Steam Upload
|
|
type: string
|
|
required: false
|
|
channel:
|
|
description: Channel to use when generating Windows update files
|
|
type: string
|
|
required: false
|
|
permissions:
|
|
contents: write
|
|
jobs:
|
|
services-validation:
|
|
name: Validate Services 🕵️
|
|
if: github.repository_owner == 'obsproject' && inputs.job == 'services'
|
|
runs-on: macos-26
|
|
permissions:
|
|
checks: write
|
|
contents: write
|
|
pull-requests: write
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- name: Check for Defunct Services 📉
|
|
uses: ./.github/actions/services-validator
|
|
with:
|
|
repositorySecret: ${{ secrets.GITHUB_TOKEN }}
|
|
checkApiSecret: ${{ secrets.CHECK_SERVERS_API_KEY }}
|
|
checkApiServers: ${{ secrets.CHECK_SERVERS_LIST }}
|
|
runSchemaChecks: true
|
|
runServiceChecks: true
|
|
createPullRequest: true
|
|
|
|
download-language-files:
|
|
name: Download Language Files 🌐
|
|
if: github.repository_owner == 'obsproject' && inputs.job == 'translations'
|
|
runs-on: ubuntu-24.04
|
|
env:
|
|
CROWDIN_PAT: ${{ secrets.CROWDIN_SYNC_CROWDIN_PAT }}
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
submodules: recursive
|
|
token: ${{ secrets.CROWDIN_SYNC_GITHUB_PAT }}
|
|
fetch-depth: 0
|
|
- uses: obsproject/obs-crowdin-sync/download@4b488c7ced03aa109d9f12529bd91c26c54b3e89
|
|
|
|
steam-upload:
|
|
name: Upload Steam Builds 🚂
|
|
if: github.repository_owner == 'obsproject' && inputs.job == 'steam'
|
|
runs-on: macos-26
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- uses: ./.github/actions/steam-upload
|
|
with:
|
|
steamSecret: ${{ secrets.STEAM_SHARED_SECRET }}
|
|
steamUser: ${{ secrets.STEAM_USER }}
|
|
steamPassword: ${{ secrets.STEAM_PASSWORD }}
|
|
tagName: ${{ inputs.ref }}
|
|
customAssetWindows: ${{ inputs.customAssetWindows }}
|
|
customAssetMacOSApple: ${{ inputs.customAssetMacOSApple }}
|
|
customAssetMacOSIntel: ${{ inputs.customAssetMacOSIntel }}
|
|
workflowSecret: ${{ github.token }}
|
|
preview: false
|
|
|
|
update-documentation:
|
|
name: Update Documentation 📖
|
|
if: github.repository_owner == 'obsproject' && inputs.job == 'documentation'
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- uses: ./.github/actions/generate-docs
|
|
|
|
update-documentation-cloudflare:
|
|
name: Update Documentation for Cloudflare ☁️
|
|
if: github.repository_owner == 'obsproject' && inputs.job == 'documentation'
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- uses: ./.github/actions/generate-docs
|
|
with:
|
|
disableLinkExtensions: true
|
|
|
|
deploy-documentation:
|
|
name: Deploy Documentation to Cloudflare ☁️
|
|
if: github.repository_owner == 'obsproject' && inputs.job == 'documentation'
|
|
runs-on: ubuntu-24.04
|
|
needs: update-documentation-cloudflare
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
environment:
|
|
name: cf-pages-deploy
|
|
steps:
|
|
- name: Get Commit Information 🆔
|
|
id: setup
|
|
run: |
|
|
: Get Commit Hash 🆔
|
|
echo "commitHash=${GITHUB_SHA:0:9}" >> $GITHUB_OUTPUT
|
|
|
|
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
with:
|
|
name: OBS Studio Docs (No Extensions) ${{ steps.setup.outputs.commitHash }}
|
|
path: docs
|
|
|
|
- name: Publish to Live Page
|
|
uses: cloudflare/wrangler-action@ebbaa1584979971c8614a24965b4405ff95890e0 # v4.0.0
|
|
with:
|
|
workingDirectory: docs
|
|
apiToken: ${{ secrets.CF_API_TOKEN }}
|
|
accountId: ${{ secrets.CF_ACCOUNT_ID }}
|
|
command: pages publish . --project-name=${{ vars.CF_PAGES_PROJECT }} --commit-hash='${{ steps.setup.outputs.commitHash }}'
|
|
|
|
windows-patches:
|
|
name: Create Windows Patches 🩹
|
|
if: github.repository_owner == 'obsproject' && inputs.job == 'patches'
|
|
runs-on: windows-2022
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- uses: ./.github/actions/windows-patches
|
|
with:
|
|
tagName: ${{ inputs.ref }}
|
|
workflowSecret: ${{ github.token }}
|
|
channel: ${{ inputs.channel }}
|
|
gcsAccessKeyId: ${{ secrets.GCS_ACCESS_KEY_ID }}
|
|
gcsAccessKeySecret: ${{ secrets.GCS_ACCESS_KEY_SECRET }}
|