build-docs.yml
72 lignes · 1913 octets
# CI de build, lint et validation pour la documentation gitrust # Déclenchée sur chaque push et pull request vers main name: Build documentation on: push: branches: [main] pull_request: branches: [main] jobs: build: name: Build, lint et validation runs-on: ubuntu-latest steps: - name: Checkout du dépôt uses: actions/checkout@v4 - name: Installer Rust (stable) uses: dtolnay/rust-toolchain@stable - name: Mettre en cache le registre Cargo uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git ~/.cargo/bin key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo- - name: Installer mdbook run: | cargo install mdbook --locked --version "^0.4" - name: Installer mdbook-mermaid run: | cargo install mdbook-mermaid --locked - name: Construire la documentation (FR) run: mdbook build - name: Installer Node.js uses: actions/setup-node@v4 with: node-version: '20' - name: Installer markdownlint-cli2 run: npm install -g markdownlint-cli2 - name: Linter les fichiers Markdown run: markdownlint-cli2 "**/*.md" "#node_modules" "#book" - name: Installer mermaid-cli run: npm install -g @mermaid-js/mermaid-cli - name: Valider les diagrammes Mermaid run: | shopt -s nullglob mmd_files=(diagrams/*.mmd) if [ ${#mmd_files[@]} -eq 0 ]; then echo "Aucun fichier .mmd trouvé dans diagrams/ — étape ignorée." exit 0 fi for f in "${mmd_files[@]}"; do echo "Validation de $f..." mmdc -i "$f" -o /tmp/out.svg echo " OK" done
GitRust