mirror of
https://github.com/XRPLF/rippled.git
synced 2026-04-09 05:22:24 +00:00
103 lines
3.0 KiB
YAML
103 lines
3.0 KiB
YAML
# This workflow builds the documentation for the repository, and publishes it to
|
|
# GitHub Pages when changes are merged into the default branch.
|
|
name: Build and publish documentation
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- "develop"
|
|
paths:
|
|
- ".github/workflows/publish-docs.yml"
|
|
- "*.md"
|
|
- "**/*.md"
|
|
- "docs/**"
|
|
- "include/**"
|
|
- "src/libxrpl/**"
|
|
- "src/xrpld/**"
|
|
pull_request:
|
|
paths:
|
|
- ".github/workflows/publish-docs.yml"
|
|
- "*.md"
|
|
- "**/*.md"
|
|
- "docs/**"
|
|
- "include/**"
|
|
- "src/libxrpl/**"
|
|
- "src/xrpld/**"
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
env:
|
|
BUILD_DIR: build
|
|
# ubuntu-latest has only 2 CPUs for private repositories
|
|
# https://docs.github.com/en/actions/reference/runners/github-hosted-runners#standard-github-hosted-runners-for--private-repositories
|
|
NPROC_SUBTRACT: ${{ github.event.repository.visibility == 'public' && '2' || '1' }}
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
container: ghcr.io/xrplf/ci/tools-rippled-documentation:sha-a8c7be1
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Prepare runner
|
|
uses: XRPLF/actions/prepare-runner@2bbc2dc1abeec7bfaa886804ab86871ac201764e
|
|
with:
|
|
enable_ccache: false
|
|
|
|
- name: Get number of processors
|
|
uses: XRPLF/actions/get-nproc@cf0433aa74563aead044a1e395610c96d65a37cf
|
|
id: nproc
|
|
with:
|
|
subtract: ${{ env.NPROC_SUBTRACT }}
|
|
|
|
- name: Check configuration
|
|
run: |
|
|
echo 'Checking path.'
|
|
echo ${PATH} | tr ':' '\n'
|
|
|
|
echo 'Checking environment variables.'
|
|
env | sort
|
|
|
|
echo 'Checking CMake version.'
|
|
cmake --version
|
|
|
|
echo 'Checking Doxygen version.'
|
|
doxygen --version
|
|
|
|
- name: Build documentation
|
|
env:
|
|
BUILD_NPROC: ${{ steps.nproc.outputs.nproc }}
|
|
run: |
|
|
mkdir -p "${BUILD_DIR}"
|
|
cd "${BUILD_DIR}"
|
|
cmake -Donly_docs=ON ..
|
|
cmake --build . --target docs --parallel ${BUILD_NPROC}
|
|
|
|
- name: Create documentation artifact
|
|
if: ${{ (github.repository_owner == 'XRPLF' || github.event.repository.visibility == 'public') && github.event_name == 'push' }}
|
|
uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4.0.0
|
|
with:
|
|
path: ${{ env.BUILD_DIR }}/docs/html
|
|
|
|
deploy:
|
|
if: ${{ (github.repository_owner == 'XRPLF' || github.event.repository.visibility == 'public') && github.event_name == 'push' }}
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
pages: write
|
|
id-token: write
|
|
environment:
|
|
name: github-pages
|
|
url: ${{ steps.deploy.outputs.page_url }}
|
|
steps:
|
|
- name: Deploy to GitHub Pages
|
|
id: deploy
|
|
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0
|