kirino 0.7.10

Zero-trust authentication and authorization framework with RBAC and dynamic risk assessment.
name: Deploy Documentation

on:
  push:
    branches: [master]
    paths:
      - 'docs/**'
      - '.github/workflows/docs.yml'
  workflow_dispatch:

permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: "pages"
  cancel-in-progress: true

jobs:
  build:
    runs-on: [self-hosted, linux, x64, local]
    timeout-minutes: 300
    steps:
      - uses: actions/checkout@v7

      # The old recipe (hosted runner + cargo install --branch dev) has failed
      # on every run since 2026-08-06: the lagrange dev branch no longer
      # builds. Use the preinstalled binary on the self-hosted pool instead
      # (crates.io 0.2.6 == git master), with a cargo-install fallback.
      - name: Install lagrange
        run: |
          set -euo pipefail
          if [ -x /mnt/work/runner-shared/lagrange/bin/lagrange ]; then
            /mnt/work/runner-shared/lagrange/bin/lagrange --version
            echo "/mnt/work/runner-shared/lagrange/bin" >> "$GITHUB_PATH"
          else
            cargo install lagrange-library --locked \
              || cargo install --git https://github.com/celestia-island/lagrange --branch master lagrange-library
          fi
      - name: Build docs
        run: lagrange build --src docs --out _site

      - uses: actions/upload-pages-artifact@v5
        with:
          path: _site

  deploy:
    needs: build
    runs-on: [self-hosted, linux, x64, local]
    timeout-minutes: 120
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v5