CI: Add docs build and deploy workflow (#7448)
* Add docs build and deploy workflow * Remove old travis docs workflow * update to cli command * Tidy up for review * formatting * Update to pass style checks * Update lib/python/qmk/cli/docs.py Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com> * Review comments - build->generate, use of verbose * Add docs * Update to match recent actions * Run within base_container * Convert cli to generate-docs * Convert cli to generate-docs - restore old file * Convert cli to generate-docs * Update docs Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>olkb_vendor_folder
parent
abf1902ff5
commit
aae3b35c0f
@ -0,0 +1,43 @@ |
||||
name: Generate Docs |
||||
|
||||
on: |
||||
push: |
||||
branches: |
||||
- master |
||||
paths: |
||||
- 'tmk_core/**' |
||||
- 'quantum/**' |
||||
- 'platforms/**' |
||||
- 'docs/**' |
||||
- '.github/workflows/docs.yml' |
||||
|
||||
jobs: |
||||
generate: |
||||
runs-on: ubuntu-latest |
||||
container: qmkfm/base_container |
||||
|
||||
# protect against those who develop with their fork on master |
||||
if: github.repository == 'qmk/qmk_firmware' |
||||
|
||||
steps: |
||||
- uses: actions/checkout@v2 |
||||
with: |
||||
fetch-depth: 1 |
||||
|
||||
- name: Install dependencies |
||||
run: | |
||||
apt-get update && apt-get install -y rsync nodejs npm doxygen |
||||
npm install -g moxygen |
||||
|
||||
- name: Build docs |
||||
run: | |
||||
qmk --verbose generate-docs |
||||
|
||||
- name: Deploy |
||||
uses: JamesIves/github-pages-deploy-action@3.7.1 |
||||
with: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
BASE_BRANCH: master |
||||
BRANCH: gh-pages |
||||
FOLDER: .build/docs |
||||
GIT_CONFIG_EMAIL: hello@qmk.fm |
@ -1 +1,2 @@ |
||||
from . import api |
||||
from . import docs |
||||
|
@ -0,0 +1,37 @@ |
||||
"""Build QMK documentation locally |
||||
""" |
||||
import shutil |
||||
import subprocess |
||||
from pathlib import Path |
||||
|
||||
from milc import cli |
||||
|
||||
DOCS_PATH = Path('docs/') |
||||
BUILD_PATH = Path('.build/docs/') |
||||
|
||||
|
||||
@cli.subcommand('Build QMK documentation.', hidden=False if cli.config.user.developer else True) |
||||
def generate_docs(cli): |
||||
"""Invoke the docs generation process |
||||
|
||||
TODO(unclaimed): |
||||
* [ ] Add a real build step... something static docs |
||||
""" |
||||
|
||||
if BUILD_PATH.exists(): |
||||
shutil.rmtree(BUILD_PATH) |
||||
|
||||
shutil.copytree(DOCS_PATH, BUILD_PATH) |
||||
|
||||
# When not verbose we want to hide all output |
||||
args = {'check': True} |
||||
if not cli.args.verbose: |
||||
args.update({'stdout': subprocess.DEVNULL, 'stderr': subprocess.STDOUT}) |
||||
|
||||
cli.log.info('Generating internal docs...') |
||||
|
||||
# Generate internal docs |
||||
subprocess.run(['doxygen', 'Doxyfile'], **args) |
||||
subprocess.run(['moxygen', '-q', '-a', '-g', '-o', BUILD_PATH / 'internals_%s.md', 'doxygen/xml'], **args) |
||||
|
||||
cli.log.info('Successfully generated internal docs to %s.', BUILD_PATH) |
@ -1,15 +0,0 @@ |
||||
#!/bin/bash |
||||
|
||||
source util/travis_utils.sh |
||||
source util/travis_push.sh |
||||
|
||||
if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip docs]"* ]] ; then |
||||
if git diff --name-only ${TRAVIS_COMMIT_RANGE} | grep -e '^quantum/' -e '^tmk_core/' -e '^docs/internals_.*'; then |
||||
echo "Generating internal docs..." |
||||
rm -rf doxygen |
||||
doxygen Doxyfile |
||||
moxygen -q -a -g -o docs/internals_%s.md doxygen/xml |
||||
git add docs/internals_* |
||||
git commit -m'autogenerated internal docs for ${TRAVIS_COMMIT_RANGE}' || true |
||||
fi |
||||
fi |
Loading…
Reference in new issue