name: Documentation on: push: branches: - main pull_request: branches: - main permissions: contents: read pages: write id-token: write concurrency: group: pages cancel-in-progress: false jobs: # Runs on pull requests too, so a broken build is caught before it merges. build: name: Build runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: actions/configure-pages@v6 # uv installs from the committed uv.lock, so the build is reproducible. - uses: astral-sh/setup-uv@v10.0.1 with: enable-cache: true - run: uv run zensical build --clean # Zensical has no plugin API yet, so llms.txt and llms-full.txt are # generated from the built site here. - run: uv run python scripts/gen_llms.py site - uses: actions/upload-pages-artifact@v5 with: path: site deploy: name: Deploy if: github.event_name == 'push' && github.ref == 'refs/heads/main' needs: build environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - uses: actions/deploy-pages@v5 id: deployment