Configure github pages

Upload the doxygen output as artifact from the linux build and use that from
the pages job where we combine the static website with our newly build HTML
docs.  The GitHub actions/download-artefact doesn't work across workflows so
we use the other popular one that can do this. The rest of the job is
basically copy/paste from the "Static HTML" example GitHub provides.

To make this useful as drop-in replacement, replace the one fixed link to the
API docs a relative one.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
master
Peter Hutterer 2023-05-08 10:35:16 +10:00
parent f75c0a2de6
commit 134c6bb28e
2 changed files with 63 additions and 1 deletions

View File

@ -34,7 +34,7 @@ jobs:
- name: Setup
run: |
# -gdwarf-4 - see https://github.com/llvm/llvm-project/issues/56550.
CFLAGS='-gdwarf-4' meson setup build
CFLAGS='-gdwarf-4' meson setup build -Denable-cool-uris=true
env:
CC: ${{ matrix.compiler }}
- name: Build
@ -53,3 +53,10 @@ jobs:
name: test logs
path: |
build/meson-logs/
- name: Store doxygen docs for use by the pages workflow
uses: actions/upload-artifact@v3
if: success()
with:
name: doxygen-docs
path: |
build/html/

55
.github/workflows/pages.yml vendored Normal file
View File

@ -0,0 +1,55 @@
name: Deploy to GitHub pages
on:
push:
branches: ["master"]
# Allow running this workflow manually from the Actions tab
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
deploy:
runs-on: ubuntu-22.04
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Set up directory tree
run: mkdir -p public_html/doc/
- name: Download doxygen from Linux build
uses: dawidd6/action-download-artifact@v2
with:
workflow: linux.yml
workflow_conclusion: success
name: doxygen-docs
path: doxygen/
- name: Move doxygen to target directory
run: mv doxygen/ public_html/doc/current/
- name: Check out the static website
uses: actions/checkout@v3
with:
repository: xkbcommon/website
persist-credentials: false
path: website
- name: Move static website to target directory
run: mv website/* public_html/
- name: Setup Pages
uses: actions/configure-pages@v3
- name: Upload pages artifact
uses: actions/upload-pages-artifact@v1
with:
path: public_html/
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2