name: Pull run-name: ${{ github.event.pull_request.title }} pull request run 🚀 on: workflow_dispatch: pull_request: paths-ignore: - '**.md' branches: [master] types: [ opened, synchronize, reopened ] permissions: contents: read concurrency: group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' cancel-in-progress: true jobs: check-format: name: Format 🔍 uses: ./.github/workflows/check-format.yaml permissions: contents: read build-project: name: Build 🧱 uses: ./.github/workflows/build-project.yaml secrets: inherit permissions: contents: read compatibility-validation: name: Validate Compatibility 🕵️ if: github.base_ref == 'master' runs-on: ubuntu-24.04 permissions: checks: write steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Check for Changed Files ✅ uses: ./.github/actions/check-changes id: checks with: baseRef: origin/${{ github.base_ref }} checkGlob: plugins/win-capture/data/*.json - name: Check for Invalid Compatibility Data 📉 if: fromJSON(steps.checks.outputs.hasChangedFiles) uses: ./.github/actions/compatibility-validator services-validation: name: Validate Services 🕵️ if: github.base_ref == 'master' runs-on: ubuntu-24.04 permissions: checks: write steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Check for Changed Files ✅ uses: ./.github/actions/check-changes id: checks with: baseRef: origin/${{ github.base_ref }} checkGlob: plugins/rtmp-services/data/*.json - name: Check Services JSON Schema 📉 if: fromJSON(steps.checks.outputs.hasChangedFiles) uses: ./.github/actions/services-validator with: repositorySecret: ${{ secrets.GITHUB_TOKEN }} runSchemaChecks: true runServiceChecks: false update-documentation: name: Update Documentation 📖 if: github.repository_owner == 'obsproject' && github.base_ref == 'master' runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Check for Changed Files ✅ uses: ./.github/actions/check-changes id: checks with: baseRef: origin/${{ github.base_ref }} checkGlob: docs/sphinx - uses: ./.github/actions/generate-docs if: fromJSON(steps.checks.outputs.hasChangedFiles)