name: Docs on: pull_request: paths: - ".github/workflows/docs.yml" - "docs/**" - "package.json" - "package-lock.json" push: branches: - main paths: - ".github/workflows/docs.yml" - "docs/**" - "package.json" - "package-lock.json" workflow_dispatch: permissions: contents: read concurrency: group: pages-${{ github.ref }} cancel-in-progress: false jobs: build: name: Build docs runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v6 with: fetch-depth: 0 - name: Set up Node.js uses: actions/setup-node@v6 with: node-version: 24 cache: npm - name: Cache VitePress uses: actions/cache@v4 with: path: docs/.vitepress/cache key: ${{ runner.os }}-vitepress-${{ hashFiles('docs/**', 'package-lock.json') }} restore-keys: | ${{ runner.os }}-vitepress- - name: Install dependencies run: npm ci - name: Build docs env: DOCS_BASE: /journeytest-core/ run: npm run docs:build - name: Upload Pages artifact uses: actions/upload-pages-artifact@v4 with: path: docs/.vitepress/dist deploy: name: Deploy docs if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' needs: build runs-on: ubuntu-latest permissions: pages: write id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4