69.4.20 push run π #51
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Push | |
run-name: ${{ github.ref_name }} push run π | |
on: | |
push: | |
paths-ignore: | |
- '**.md' | |
branches: | |
- master | |
- 'release/**' | |
tags: | |
- '*' | |
permissions: | |
contents: write | |
jobs: | |
check-format: | |
name: Format π | |
if: github.ref_name == 'master' | |
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.ref_name == 'master' | |
runs-on: ubuntu-22.04 | |
permissions: | |
checks: write | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Check for Changed Files β | |
uses: ./.github/actions/check-changes | |
id: checks | |
with: | |
baseRef: ${{ github.event.before }} | |
checkGlob: plugins/win-capture/data/*.json | |
- name: Check for Invalid Compatibility Data π | |
if: fromJSON(steps.checks.outputs.hasChangedFiles) | |
uses: ./.github/actions/compatibility-validator | |
with: | |
repositorySecret: ${{ github.token }} | |
services-validation: | |
name: Validate Services π΅οΈ | |
if: github.ref_name == 'master' | |
runs-on: ubuntu-22.04 | |
permissions: | |
checks: write | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Check for Changed Files β | |
uses: ./.github/actions/check-changes | |
id: checks | |
with: | |
baseRef: ${{ github.event.before }} | |
checkGlob: plugins/rtmp-services/data/*.json | |
- name: Check Services JSON Schema π | |
if: fromJSON(steps.checks.outputs.hasChangedFiles) | |
uses: ./.github/actions/services-validator | |
with: | |
repositorySecret: ${{ github.token }} | |
runSchemaChecks: true | |
runServiceChecks: false | |
update-documentation: | |
name: Update Documentation π | |
if: github.repository_owner == 'obsproject' && (github.ref_name == 'master' || github.ref_type == 'tag') | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Check for Changed Files β | |
if: github.ref_type != 'tag' | |
uses: ./.github/actions/check-changes | |
id: checks | |
with: | |
baseRef: ${{ github.event.before }} | |
checkGlob: '!(cmake*)' | |
- uses: ./.github/actions/generate-docs | |
if: github.ref_type == 'tag' || fromJSON(steps.checks.outputs.hasChangedFiles) | |
with: | |
disableLinkExtensions: ${{ github.ref_type == 'tag' }} | |
deploy-documentation: | |
name: Deploy Documentation to Cloudflare βοΈ | |
if: github.repository_owner == 'obsproject' && github.ref_type == 'tag' | |
runs-on: ubuntu-22.04 | |
needs: update-documentation | |
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@v3 | |
with: | |
name: OBS Studio Docs (No Extensions) ${{ steps.setup.outputs.commitHash }} | |
path: docs | |
- name: Set Up Redirects π | |
run: | | |
: Set Up Redirects π | |
if [[ "${RUNNER_DEBUG}" ]]; then set -x; fi | |
echo "/previous/27.2 https://obsproject.com/docs/27.2 302" >> docs/_redirects | |
echo "/previous/:major.:minor https://:major-:minor.${{ vars.CF_PAGES_PROJECT }}.pages.dev 302" >> docs/_redirects | |
- 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 }}' | |
create-appcast: | |
name: Create Sparkle Appcast ποΈ | |
if: github.repository_owner == 'obsproject' && github.ref_type == 'tag' | |
runs-on: macos-13 | |
needs: build-project | |
strategy: | |
fail-fast: false | |
matrix: | |
target: [arm64, x86_64] | |
defaults: | |
run: | |
shell: zsh --no-rcs --errexit --pipefail {0} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
ref: ${{ github.ref }} | |
- name: Set Up Environment π§ | |
id: setup | |
run: | | |
: Set Up Environment π§ | |
if (( ${+RUNNER_DEBUG} )) setopt XTRACE | |
local channel='stable' | |
if [[ ${GITHUB_REF_NAME} == *(beta|rc)* ]] { | |
channel='beta' | |
} | |
local -A arch_names=(x86_64 intel arm64 apple) | |
print "cpuName=${arch_names[${{ matrix.target }}]}" >> $GITHUB_OUTPUT | |
print "commitHash=${GITHUB_SHA:0:9}" >> $GITHUB_OUTPUT | |
print "channel=${channel}" >> $GITHUB_OUTPUT | |
- name: Download Artifact π₯ | |
uses: actions/download-artifact@v3 | |
with: | |
name: obs-studio-macos-${{ matrix.target }}-${{ steps.setup.outputs.commitHash }} | |
- name: Generate Appcast ποΈ | |
id: generate-appcast | |
uses: ./.github/actions/sparkle-appcast | |
with: | |
sparklePrivateKey: ${{ secrets.SPARKLE_PRIVATE_KEY }} | |
baseImage: ${{ github.workspace }}/obs-studio-*-macos-${{ steps.setup.outputs.cpuName }}.dmg | |
channel: ${{ steps.setup.outputs.channel }} | |
count: 1 | |
urlPrefix: 'https://cdn-fastly.obsproject.com/downloads' | |
customTitle: 'OBS Studio' | |
customLink: 'https://obsproject.com/' | |
- name: Upload Artifacts π‘ | |
uses: actions/upload-artifact@v3 | |
with: | |
name: macos-sparkle-update | |
path: ${{ github.workspace }}/output | |
create-windows-update: | |
name: Create Windows Update ποΈ | |
if: github.ref_type == 'tag' | |
runs-on: windows-2022 | |
needs: build-project | |
permissions: | |
contents: 'read' | |
id-token: 'write' | |
defaults: | |
run: | |
shell: pwsh | |
environment: | |
name: bouf | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
path: "repo" | |
fetch-depth: 0 | |
ref: ${{ github.ref }} | |
- name: Set Up Environment π§ | |
id: setup | |
run: | | |
$channel = 'stable' | |
if ($env:GITHUB_REF_NAME -match "(beta|rc)") { | |
$channel = 'beta' | |
} | |
"channel=${channel}" >> $env:GITHUB_OUTPUT | |
$shortHash = $env:GITHUB_SHA.Substring(0,9) | |
"commitHash=${shortHash}" >> $env:GITHUB_OUTPUT | |
- name: Download Artifact π₯ | |
uses: actions/download-artifact@v3 | |
with: | |
name: obs-studio-windows-x64-${{ steps.setup.outputs.commitHash }} | |
path: ${{ github.workspace }}/build | |
- name: Run bouf ποΈ | |
uses: ./repo/.github/actions/bouf | |
with: | |
updaterPrivateKey: ${{ secrets.UPDATER_PRIVATE_KEY }} | |
gcpWorkloadIdentityProvider: ${{ secrets.GCP_IDENTITY_POOL }} | |
gcpServiceAccountName: ${{ secrets.GCP_SERVICE_ACCOUNT_NAME }} | |
version: ${{ github.ref_name }} | |
channel: ${{ steps.setup.outputs.channel }} | |
- name: Upload Artifacts π‘ | |
uses: actions/upload-artifact@v3 | |
with: | |
name: windows-bouf-output | |
path: ${{ github.workspace }}/output |