name: Deploy Docs on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install uv run: | curl -LsSf https://astral.sh/uv/install.sh | sh echo "$HOME/.local/bin" >> "$GITHUB_PATH" - name: Install Python 3.12 via uv run: | export PATH="$HOME/.local/bin:$PATH" uv python install 3.12 - name: Build site run: | export PATH="$HOME/.local/bin:$PATH" uv venv --python 3.12 /tmp/venv . /tmp/venv/bin/activate python --version uv pip install zensical uv pip install -e . python3 main.py zensical build --clean - name: Deploy to pages branch run: | set -e git config user.name "forgejo-actions" git config user.email "forgejo-actions@noreply.local" git fetch origin pages git worktree add /tmp/pages-deploy origin/pages cd /tmp/pages-deploy git rm -rf --ignore-unmatch . cp -r "$GITHUB_WORKSPACE"/site/* . cp "$GITHUB_WORKSPACE"/site/.[!.]* . 2>/dev/null || true git add . if ! git diff --staged --quiet; then git commit -m "deploy: zensical build from ${GITHUB_SHA::7}" git push origin HEAD:pages else echo "No changes to deploy" fi env: GITHUB_WORKSPACE: ${{ github.workspace }} GITHUB_SHA: ${{ github.sha }}