Schéma du fichier .gitrust-ci.yml (mode Easy)¶
Référence complète du fichier de configuration CI pour le mode Easy de gitrust. Ce fichier doit se trouver à la racine du dépôt.
Pour une introduction pratique, consulte le tutoriel 04 — Automatiser avec la CI.
Structure générale¶
language: <string> # Profil de langage (requis)
build:
command: <string> # Commande de build
checks:
<nom>: <string> # Une ou plusieurs commandes de vérification
<nom>: <string>
tests:
command: <string> # Commande de test principale
deploy: # Optionnel
command: <string>
only_on: <string> # Branche déclenchant le déploiement (ex. "main")
artifacts: # Optionnel
paths:
- <chemin>
env: # Variables d'environnement pour toutes les étapes
<NOM>: <valeur>
Champ language¶
Type : string — Requis
Charge un profil préconfigué avec les outils et l'image Docker adaptés au langage.
| Valeur | Image Docker de base | Outils pré-installés |
|---|---|---|
rust |
rust:latest |
cargo, rustfmt, clippy |
node |
node:lts |
npm, npx |
python |
python:3-slim |
pip, pytest |
go |
golang:latest |
go, gofmt, golangci-lint |
Si ton langage n'est pas listé, utilise language: node ou language: python comme base générique et surcharge les commandes manuellement. Les profils sont définis sur le serveur de build dans deployment/ci-engine/profiles/.
Section build¶
Optionnel
Exécutée en premier. Arrête le pipeline en cas d'échec (code de sortie non nul).
Section checks¶
Optionnel
Dictionnaire de vérifications statiques (lint, format, sécurité). Chaque clé est un nom arbitraire affiché dans les logs. Les checks sont exécutés en parallèle si le serveur de build le supporte.
Section tests¶
Optionnel
Commande de test principale. Exécutée après build et checks.
Section deploy¶
Optionnel
Déploiement conditionnel. Exécuté uniquement sur la branche spécifiée dans only_on.
Si only_on est omis, le déploiement s'exécute sur toutes les branches — généralement non souhaitable.
Section artifacts¶
Optionnel
Chemins des fichiers ou dossiers à conserver après le pipeline. Les artefacts sont accessibles depuis la page de détail du pipeline dans l'UI.
Section env¶
Optionnel
Variables d'environnement disponibles dans toutes les commandes du pipeline. Ne jamais placer de secrets ici — utilise les variables CI chiffrées via l'UI (/{owner}/{repo}/ci/variables).
Les variables définies dans l'UI ont priorité sur celles du fichier YAML en cas de conflit de nom.
Exemples complets par langage¶
Rust¶
language: rust
build:
command: "cargo build --release"
checks:
lint: "cargo clippy -- -D warnings"
format: "cargo fmt -- --check"
tests:
command: "cargo test --release"
artifacts:
paths:
- target/release/mon-binaire
Node.js¶
language: node
build:
command: "npm ci"
checks:
lint: "npm run lint"
typecheck: "npm run typecheck"
tests:
command: "npm test"
artifacts:
paths:
- dist/
Python¶
language: python
build:
command: "pip install -r requirements.txt"
checks:
lint: "flake8 src/"
format: "black --check src/"
tests:
command: "pytest --tb=short"
Go¶
language: go
build:
command: "go build ./..."
checks:
lint: "golangci-lint run ./..."
vet: "go vet ./..."
tests:
command: "go test ./..."
Détection automatique du mode¶
gitrust détecte le mode à exécuter lors d'un push selon la règle suivante :
| Contenu de l'arbre du commit | Mode |
|---|---|
.gitrust-ci.yml présent |
Easy — ce fichier |
.dagger/ présent |
Power — module Dagger complet |
| Aucun des deux | Pas de pipeline |
Si les deux sont présents, le mode Power a la priorité.
Voir aussi¶
- Tutoriel 04 — Automatiser avec la CI : mise en pratique pas à pas
- Référence API REST — CI : déclencher et interroger les pipelines via l'API