name: documentation on: pull_request: branches: [master] paths: ['docs/**'] push: branches: [master] paths: ['docs/**'] workflow_dispatch: jobs: pull-request-check: if: github.event_name == 'pull_request' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Pages id: pages uses: actions/configure-pages@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: npm cache-dependency-path: "./docs/package-lock.json" - name: Test Build working-directory: ./docs run: | npm ci npm run build build-docs: if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 - name: Build docusaurus working-directory: ./docs run: | npm ci npm run build - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: ./docs/build deploy-docs: needs: build-docs runs-on: ubuntu-latest permissions: pages: write # to deploy to Pages id-token: write # to verify the deployment originates from an appropriate source environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4