|
@@ -4,20 +4,34 @@ on:
|
|
|
push:
|
|
|
paths-ignore:
|
|
|
- "cmake/**"
|
|
|
+ branches: ['*']
|
|
|
+ tags: ['*']
|
|
|
pull_request:
|
|
|
paths:
|
|
|
- "docs/sphinx/**"
|
|
|
+ workflow_dispatch:
|
|
|
|
|
|
jobs:
|
|
|
docs:
|
|
|
runs-on: ubuntu-latest
|
|
|
+ outputs:
|
|
|
+ commitHash: ${{ steps.setup.outputs.commitHash }}
|
|
|
+ commitBranch: ${{ steps.setup.outputs.commitBranch }}
|
|
|
+ fullCommitHash: ${{ steps.setup.outputs.fullCommitHash }}
|
|
|
steps:
|
|
|
- name: Checkout
|
|
|
uses: actions/checkout@v3
|
|
|
+
|
|
|
- name: Setup Environment
|
|
|
id: setup
|
|
|
run: |
|
|
|
+ BRANCH=$(git describe --exact-match --tags 2> /dev/null || git branch --show-current)
|
|
|
+ # Remove patch version from tag
|
|
|
+ BRANCH=$(echo ${BRANCH} | sed -e 's/\.[0-9]*$//')
|
|
|
+ echo "commitBranch=${BRANCH}" >> $GITHUB_OUTPUT
|
|
|
echo "commitHash=$(git describe --exact-match --tags 2> /dev/null || git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
|
|
+ echo "fullCommitHash=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
|
|
|
+
|
|
|
- name: Bump Version Number
|
|
|
shell: bash
|
|
|
if: github.event_name == 'push'
|
|
@@ -40,6 +54,7 @@ jobs:
|
|
|
SCOPY="copyright = '([A-Za-z0-9, ]+)'"
|
|
|
RCOPY="copyright = '2017-$(date +"%Y"), Hugh Bailey'"
|
|
|
sed -i -E -e "s/${SVER}/${RVER}/g" -e "s/${SREL}/${RREL}/g" -e "s/${SCOPY}/${RCOPY}/g" docs/sphinx/conf.py
|
|
|
+
|
|
|
- uses: totaldebug/[email protected]
|
|
|
with:
|
|
|
sphinx_src: 'docs/sphinx'
|
|
@@ -47,9 +62,47 @@ jobs:
|
|
|
target_branch: 'master'
|
|
|
target_path: '../home/_build'
|
|
|
pre_build_commands: 'pip install -Iv sphinx==5.1.1'
|
|
|
+
|
|
|
- uses: actions/upload-artifact@v3
|
|
|
with:
|
|
|
name: 'OBS Studio Docs ${{ steps.setup.outputs.commitHash }}'
|
|
|
path: |
|
|
|
${{ runner.temp }}/_github_home/_build
|
|
|
!${{ runner.temp }}/_github_home/_build/.doctrees
|
|
|
+
|
|
|
+ deploy:
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ needs: docs
|
|
|
+ if: ${{ github.event_name == 'workflow_dispatch' || (github.repository_owner == 'obsproject' && startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request') }}
|
|
|
+ environment:
|
|
|
+ name: cf-pages-deploy
|
|
|
+ concurrency:
|
|
|
+ group: "cf-pages-deployment"
|
|
|
+ cancel-in-progress: true
|
|
|
+ steps:
|
|
|
+ - uses: actions/download-artifact@v3
|
|
|
+ with:
|
|
|
+ name: 'OBS Studio Docs ${{ needs.docs.outputs.commitHash }}'
|
|
|
+ path: docs
|
|
|
+
|
|
|
+ - name: Setup redirects
|
|
|
+ run: |
|
|
|
+ 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='${{ needs.docs.outputs.fullCommitHash }}'
|
|
|
+
|
|
|
+ - name: Publish to tag alias
|
|
|
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
|
|
+ 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='${{ needs.docs.outputs.fullCommitHash }}' --branch='${{ needs.docs.outputs.commitBranch }}'
|