diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..9e64242 --- /dev/null +++ b/.github/workflows/docs.yml @@ -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 diff --git a/.github/workflows/julia-docs.yml b/.github/workflows/julia-docs.yml index 196763e..fc06e54 100644 --- a/.github/workflows/julia-docs.yml +++ b/.github/workflows/julia-docs.yml @@ -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 diff --git a/.github/workflows/main-docs.yml b/.github/workflows/main-docs.yml deleted file mode 100644 index b0f3158..0000000 --- a/.github/workflows/main-docs.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Build top level docs -on: - push: - branches: [main] - paths: - - "mkdocs.yml" - - "docs/**" - -permissions: - contents: write -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Configure Git Credentials - run: | - git config user.name github-actions[bot] - git config user.email 41898282+github-actions[bot]@users.noreply.github.com - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - - uses: actions/cache@v4 - with: - key: mkdocs-material-${{ env.cache_id }} - path: .cache - restore-keys: | - mkdocs-material- - - run: pip install mkdocs-material - - run: mkdocs gh-deploy --force diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 76e118c..31c2acc 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -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 }} @@ -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) }} diff --git a/julia/docs/make.jl b/julia/docs/make.jl index de3f31a..46d6e43 100644 --- a/julia/docs/make.jl +++ b/julia/docs/make.jl @@ -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")