52 lines
2.2 KiB
YAML
52 lines
2.2 KiB
YAML
|
|
# Verification automatique du depot, a chaque poussee.
|
||
|
|
#
|
||
|
|
# POURQUOI CE FICHIER EXISTE (2026-08-20). Le depot portait 38 preuves rejouables, des
|
||
|
|
# tests unitaires et un lint — et RIEN ne les executait sans qu'un humain tape `make`.
|
||
|
|
# Le meilleur atout du projet ne se declenchait que par memoire. Un harnais qu'on peut
|
||
|
|
# oublier de lancer ne garde rien.
|
||
|
|
#
|
||
|
|
# CE QUE CETTE CI VERIFIE : que le depot PUBLIC, seul, se tient. Elle monte le modele
|
||
|
|
# public `exemples/modeles/socle` comme instance jetable, l'applique, puis rejoue lint,
|
||
|
|
# tests, syntaxe et les 38 preuves (`make ci`). C'est exactement ce qu'obtient un inconnu
|
||
|
|
# qui clone le depot — et c'est pour ca que ca vaut la peine : jusqu'au 2026-08-19, ce
|
||
|
|
# chemin-la ne passait pas.
|
||
|
|
#
|
||
|
|
# CE QU'ELLE NE PEUT PAS VERIFIER, et il faut le savoir :
|
||
|
|
# - la flotte reelle. Aucune VM n'est jointe, aucun deploiement n'est fait ;
|
||
|
|
# - la voute. Aucun secret n'entre ici ; les preuves qui exigent une voute reelle
|
||
|
|
# travaillent sur le modele, qui n'en a pas ;
|
||
|
|
# - l'instance de production. Elle vit dans un depot prive, absent d'ici.
|
||
|
|
# Le vert de cette CI dit « le moteur et son modele public se tiennent », pas « la flotte
|
||
|
|
# va bien ». Cette derniere question, c'est `make prouver` sur le poste de l'exploitant.
|
||
|
|
#
|
||
|
|
# DEUX CHOSES A AJUSTER AU PREMIER PASSAGE :
|
||
|
|
# - `runs-on` doit correspondre a une etiquette d'un runner Forgejo enregistre ;
|
||
|
|
# - le runner a besoin d'un acces reseau pour pip et ansible-galaxy.
|
||
|
|
|
||
|
|
name: verifier
|
||
|
|
|
||
|
|
# « on » entre guillemets : YAML lit `on:` nu comme le booleen vrai, et le lint du depot
|
||
|
|
# le refuse (yaml[truthy]). Le harnais a attrape son propre fichier de CI avant qu'il ne
|
||
|
|
# tourne une seule fois.
|
||
|
|
"on":
|
||
|
|
push:
|
||
|
|
pull_request:
|
||
|
|
workflow_dispatch:
|
||
|
|
|
||
|
|
jobs:
|
||
|
|
verifier:
|
||
|
|
runs-on: ubuntu-latest
|
||
|
|
steps:
|
||
|
|
- name: Recuperer le depot
|
||
|
|
uses: actions/checkout@v4
|
||
|
|
|
||
|
|
- name: Outils et collections, puis `make ci`
|
||
|
|
run: |
|
||
|
|
set -e
|
||
|
|
python3 -m venv /tmp/venv
|
||
|
|
. /tmp/venv/bin/activate
|
||
|
|
pip install --quiet --upgrade pip
|
||
|
|
pip install --quiet 'ansible-core>=2.18,<2.19' ansible-lint pyyaml
|
||
|
|
ansible-galaxy collection install -r requirements.yml
|
||
|
|
make ci
|