Build Docs
build-docs
This action will build the sphinx base documentation and if desired publish it to confluence and/or the repo’s github pages. The expectation of the code is that the index and sphinx conf.py exist in the /docs dir. A version string to render in the HTML pages may optionally be passed in, which will override the version defined in the conf.py. This can be done in tandem with the increment-version action to have published docs reflect the latest tagged version of the repo.
Build the docs but don’t publish
- name: Documentation build and publish
uses: GenapsysInc/internal-actions/reusable-actions/build-docs@main
with:
token: XXXXXXXXX
confluence_secret: XXXXXXXXX
build_confluence: true
publish_confluence: false
build_html: true
publish_html: false
warn_as_errors: false
api_dirs: "code"
api_exclude: "tests/**/data tests/bad_syntax/*.py"
build_options: -n
Build the HTML docs only
- name: Documentation build and publish
uses: GenapsysInc/internal-actions/reusable-actions/build-docs@main
with:
token: XXXXXXXXX
confluence_secret: XXXXXXXXX
build_confluence: false
publish_confluence: false
build_html: true
publish_html: true
warn_as_errors: false
api_dirs: "code"
api_exclude: "tests/**/data tests/bad_syntax/*.py"
build_options: -n
Build and publish docs
- name: Documentation build and publish
uses: GenapsysInc/internal-actions/reusable-actions/build-docs@main
with:
token: XXXXXXXXX
confluence_secret: XXXXXXXXX
build_confluence: true
publish_confluence: true
build_html: true
publish_html: true
warn_as_errors: false
api_dirs: "code"
api_exclude: "tests/**/data tests/bad_syntax/*.py"
build_options: -n
Tag new version and pass into the doc builder
jobs:
increment-version:
runs-on: ubuntu-latest
outputs:
new-version: ${{ steps.run-increment-version.outputs.new-version }}
steps:
- name: Run the increment-version action
id: run-increment-version
uses: GenapsysInc/internal-actions/reusable-actions/increment-version@main
doc-build:
needs: increment-version
runs-on: ubuntu-latest
steps:
- name: Documentation build and publish
uses: GenapsysInc/internal-actions/reusable-actions/build-docs@main
with:
token: XXXXXXXXX
confluence_secret: XXXXXXXXX
build_confluence: true
publish_confluence: true
build_html: true
publish_html: true
warn_as_errors: false
version: ${{ needs.increment-version.outputs.new-version }}
api_dirs: "code"
api_exclude: "tests/**/data tests/bad_syntax/*.py"
build_options: -n
Templates
PR Template
Run the documentation but don’t publish it. This is good to check that the documents build without errors
on:
pull_request:
types: [opened, synchronize, reopened]
# Just run the documentation but don't publish it. This is good to check that the documents build without errors
jobs:
call-workflow:
name: Run the documentation builder workflow
runs-on: ubuntu-latest
steps:
- name: Documentation build
uses: GenapsysInc/internal-actions/reusable-actions/build-docs@main
with:
token: ${{ secrets.GH_ACTION }} # Token needs read access to any submodules and write access to github pages branch
confluence_secret: ${{ secrets.CONFLUENCE_SECRET }} # optional - Needed for confluence publishing
build_confluence: true # boolean true || false
publish_confluence: false # boolean true || false
build_html: true # boolean true || false
publish_html: false # boolean true || false
warn_as_errors: false # boolean true || false
api_dirs: "code tests" # optional
api_exclude: "tests/**/data tests/bad_syntax/*.py"
build_options: -n # optional
Push Template
Run the documentation and publish it. This is good after the PR has been merged so that the published documents are always up-to-date.
on:
push:
branches:
- main # or the name of your main branch
# Run the documentation and publish it. This is good after the PR has been merged so that the published documents are always up-to-date.
jobs:
call-workflow:
name: Run the documentation builder workflow
runs-on: ubuntu-latest
steps:
- name: Documentation build and publish
uses: GenapsysInc/internal-actions/reusable-actions/build-docs@main
with:
token: ${{ secrets.GHCR_TOKEN }} # Token needs read access to any submodules and write access to github pages branch
confluence_secret: ${{ secrets.CONFLUENCE_SECRET }} # optional - Needed for confluence publishing
build_confluence: true # boolean true || false
publish_confluence: true # boolean true || false
build_html: true # boolean true || false
publish_html: true # boolean true || false
warn_as_errors: false # boolean true || false
api_dirs: "code tests" # optional
api_exclude: "tests/**/data tests/bad_syntax/*.py"
build_options: -n # optional