name: Documentation on: # trigger deployment on push to master branch when changes to docs/** push: paths: - "docs/**" branches: - master # trigger deployment manually workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest defaults: run: working-directory: docs/ steps: - uses: actions/checkout@v4 with: # fetch all commits to get last updated time or other git log info fetch-depth: 0 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: "20" - name: Cache dependencies uses: actions/cache@v3 id: npm-cache with: path: | **/node_modules key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-npm- - name: Install dependencies if: steps.npm-cache.outputs.cache-hit != 'true' run: npm install - name: Build VitePress site run: npm run build - name: Bundle CNAME with site dist run: cp CNAME .vitepress/dist - name: Deploy to GitHub Pages uses: crazy-max/ghaction-github-pages@v4 with: # deploy to gh-pages branch target_branch: gh-pages # deploy the default output dir of VitePress build_dir: docs/.vitepress/dist env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}