Skip to content

Commit

Permalink
Build and deploy all docs in single workflow
Browse files Browse the repository at this point in the history
Squashed commit of the following:

commit 3ba06ec
Author: Bart Schilperoort <[email protected]>
Date:   Thu Nov 21 14:14:21 2024 +0100

    Upload pages artifact instead of generic artifact

commit 927b40d
Author: Bart Schilperoort <[email protected]>
Date:   Thu Nov 21 14:08:36 2024 +0100

    Set workflow permissions correctly

commit c7ef98f
Author: Bart Schilperoort <[email protected]>
Date:   Thu Nov 21 14:04:56 2024 +0100

    Merge artifacts before deployment

commit d7362b4
Author: Bart Schilperoort <[email protected]>
Date:   Thu Nov 21 13:56:55 2024 +0100

    Add id-token write permission

commit 7ea1d35
Author: Bart Schilperoort <[email protected]>
Date:   Thu Nov 21 13:54:16 2024 +0100

    upload-artifact ignores working dir

commit 586dc8a
Author: Bart Schilperoort <[email protected]>
Date:   Thu Nov 21 13:50:48 2024 +0100

    (hopefully) fix julia build

commit 4964d6c
Author: Bart Schilperoort <[email protected]>
Date:   Thu Nov 21 13:48:02 2024 +0100

    Remember to checkout repo in steps

commit 58b1c61
Author: Bart Schilperoort <[email protected]>
Date:   Thu Nov 21 13:45:07 2024 +0100

    Set working directories in main docs build workflow

commit 6ffdc29
Author: Bart Schilperoort <[email protected]>
Date:   Thu Nov 21 13:39:43 2024 +0100

    Build and deploy all docs in a single workflow
  • Loading branch information
BSchilperoort committed Nov 21, 2024
1 parent a230e91 commit 851d44f
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 47 deletions.
116 changes: 116 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
name: Main docs 📖
on:
push:
branches: [main]
workflow_call:

permissions:
contents: read
pages: write
id-token: write

jobs:
build-julia:
runs-on: ubuntu-latest
defaults:
run:
working-directory: julia
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: "1"
project: '.'
- name: Use Julia cache
uses: julia-actions/cache@v2
- name: Instantiate environment with development version of the package
run: |
julia --project=docs -e '
using Pkg
Pkg.develop(PackageSpec(path=pwd()))
Pkg.instantiate()'
- name: Generate Julia documentation
run: julia --project=docs docs/make.jl
- name: Upload build as artifact
id: deployment
uses: actions/upload-artifact@v4
with:
name: julia-docs
path: julia/docs/build/
build-python:
runs-on: ubuntu-latest
defaults:
run:
working-directory: python
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
cache: "pip"
- name: Install docs requirements
run: pip install -r docs/requirements.txt
- name: Build Python docs
run: make -C docs/ html
- name: Upload build as artifact
id: deployment
uses: actions/upload-artifact@v4
with:
name: python-docs
path: python/docs/_build/html
build-main:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
cache: "pip"
- name: Install mkdocs
run: pip install mkdocs-material
- name: Build mkdocs
run: mkdocs build -d html
- name: Upload build as artifact
id: deployment
uses: actions/upload-artifact@v4
with:
name: main-docs
path: html
merge:
runs-on: ubuntu-latest
needs:
- build-julia
- build-python
- build-main
steps:
- name: Download Julia build
uses: actions/download-artifact@v4
with:
name: julia-docs
path: julia
- name: Download Python build
uses: actions/download-artifact@v4
with:
name: python-docs
path: python
- name: Download main build
uses: actions/download-artifact@v4
with:
name: main-docs
path: .
- name: Reupload merged artifacts
id: deployment
uses: actions/upload-pages-artifact@v3
with:
path: .
publish-docs:
runs-on: ubuntu-latest
needs: merge
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
3 changes: 1 addition & 2 deletions .github/workflows/julia-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,9 @@ jobs:
DocMeta.setdocmeta!(RemoteBMI, :DocTestSetup, :(using RemoteBMI); recursive=true)
doctest(RemoteBMI)'
working-directory: julia
- name: Generate and deploy documentation
- name: Build documentation
run: julia --project=docs docs/make.jl
working-directory: julia
env:
JULIA_PKG_SERVER: ""
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GKSwstype: "100" # https://discourse.julialang.org/t/generation-of-documentation-fails-qt-qpa-xcb-could-not-connect-to-display/60988
31 changes: 0 additions & 31 deletions .github/workflows/main-docs.yml

This file was deleted.

13 changes: 1 addition & 12 deletions .github/workflows/python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ jobs:
- name: Build package
run: python3 -m build
docs:
name: build docs 📖
name: test build docs 📖
runs-on: ubuntu-latest
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
Expand All @@ -138,14 +138,3 @@ jobs:
run: pip install -r docs/requirements.txt
- name: Build docs
run: make -C docs/ html
- name: Move files
run: mv docs/_build/html pydocs
- name: Deploy docs
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: python/pydocs
destination_dir:
${{ env.BRANCH_NAME == 'main' && 'python/' || format('python/branch/{0}', env.BRANCH_NAME) }}
- name: Display CI docs URL
run: echo https://www.ewatercycle.org/remotebmi/${{ env.BRANCH_NAME == 'main' && 'python/' || format('python/branch/{0}', env.BRANCH_NAME) }}
2 changes: 0 additions & 2 deletions julia/docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,3 @@ makedocs(;
format = Documenter.HTML(; canonical = "https://eWaterCycle.github.io/remotebmi/RemoteBMI.jl"),
pages = ["index.md"; numbered_pages],
)

deploydocs(; repo = "github.com/eWaterCycle/remotebmi", dirname="julia")

0 comments on commit 851d44f

Please sign in to comment.