name: Build documentation on: push: branches: - refactor-structure pull_request: workflow_call: inputs: ref: description: 'commit to build' type: string required: false path: description: 'path within the docs pages to build to' type: string required: false artifact: description: 'artifact name to write' type: string required: false latest: description: 'build the latest release' type: boolean required: false jobs: build-docs: name: Build documentation runs-on: ubuntu-latest steps: - uses: actions/setup-node@v4 with: node-version: 18 - uses: actions/checkout@v4 with: ref: ${{ inputs.ref || github.ref }} - uses: actions/checkout@v4 with: repository: bdunderscore/modular-avatar-images path: modular-avatar-images - name: Install logo assets run: | cp -Rv modular-avatar-images/img/* docs~/static/img - name: Setup yarn 2.0 run: | corepack enable corepack prepare yarn@stable --activate - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "dir=$(cd docs~; yarn config get cacheFolder)" >> $GITHUB_OUTPUT - uses: actions/cache@v4 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-docs-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn-docs- - name: Set baseUri if: ${{ inputs.path }} run: | BASEURL="/${{ inputs.path }}/" perl -i -p -e "s{baseUrl: '/'}{baseUrl: '\$ENV{BASEURL}'}" docs~/docusaurus.config.js cat docs~/docusaurus.config.js - name: Build docs run: | cd docs~ yarn install --immutable yarn build ls -lR build - name: Set robots.txt run: | if [ -e docs~/robots.txt ]; then cp docs~/robots.txt docs~/build/robots.txt fi - name: Package documentation run: | tar -cf docs.tar -C docs~/build . - name: Upload artifact uses: actions/upload-artifact@v4 with: name: ${{ inputs.artifact || 'docs' }} path: docs.tar