mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-02 09:33:33 +00:00
CI: Publish docs to Cloudflare Pages
(cherry picked from commit 0a18c006ca
)
This commit is contained in:
parent
414dccb2c3
commit
96aef4f048
53
.github/workflows/docs.yml
vendored
53
.github/workflows/docs.yml
vendored
|
@ -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/sphinx-publish-action@1.2.0
|
||||
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 }}'
|
||||
|
|
Loading…
Reference in a new issue