| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- 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-15
- permissions:
- checks: write
- contents: write
- pull-requests: write
- steps:
- - uses: actions/checkout@v4
- - 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@v4
- with:
- submodules: recursive
- token: ${{ secrets.CROWDIN_SYNC_GITHUB_PAT }}
- fetch-depth: 0
- - uses: obsproject/obs-crowdin-sync/download@430665179ed13233af2d83ec192c2ae8c40a29ae
- steam-upload:
- name: Upload Steam Builds 🚂
- if: github.repository_owner == 'obsproject' && inputs.job == 'steam'
- runs-on: macos-15
- steps:
- - uses: actions/checkout@v4
- - 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@v4
- - 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@v4
- - 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@v4
- with:
- name: OBS Studio Docs (No Extensions) ${{ steps.setup.outputs.commitHash }}
- path: docs
- - name: Publish to Live Page
- uses: cloudflare/wrangler-action@4c10c1822abba527d820b29e6333e7f5dac2cabd
- 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@v4
- - 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 }}
|