ci — arrêter les runs qui ne peuvent pas aboutir, et le doublon push+PR
Quatre runs d'une branche déjà mergée ont bloqué, ce matin, l'apply qu'on attendait. Deux causes, indépendantes : 1. Les workflows tofu (minio, vault, crowdsec, plausible) s'authentifient à Vault par un flux OIDC dont un HUMAIN doit ouvrir le lien. Déclenchés tout seuls, ils ne peuvent qu'occuper un runner jusqu'au timeout. Ils font en plus `apply` en `auto_approve` CONTRE LA PROD : partir sur le push d'une branche, c'est appliquer du code que personne n'a relu. → `workflow_dispatch` seul, ce qui écrit enfin ce qu'ils faisaient déjà. (crowdsec et plausible passaient de toute façon par une ancre YAML, donc leurs triggers étaient INERTES — issues 113 → 117 de kadans.) 2. `push` sur toutes les branches + `pull_request` = DEUX runs par commit dès qu'une branche a une PR. Vérifié : runs 258/259 et 260/261 portent le même SHA. helmcharts, qui travaille seul et mérite de rester automatique, prend la forme éprouvée de la CI de kadans : push sur `main`, PR pour la branche. Chaque clé de trigger porte un corps explicite : un `pull_request:` nu n'est pas une forme éprouvée ici, et son mode d'échec est le silencieux. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01CoafGWmRVESaWX819USUUA
This commit is contained in:
+11
-12
@@ -1,20 +1,19 @@
|
||||
---
|
||||
name: MinIO
|
||||
|
||||
# ⚠ Triggers écrits EN TOUTES LETTRES, sans ancre YAML (`&`/`*`).
|
||||
# Une ancre dans un trigger Gitea Actions fait taire push ET pull_request —
|
||||
# en silence, aucun run, aucune erreur (vécu sur arcodange/kadans, issues 113
|
||||
# → 117). Les autres workflows de ce repo utilisent encore des ancres : à
|
||||
# vérifier séparément, c'est probablement pour ça qu'ils ne partent qu'à la
|
||||
# main (workflow_dispatch).
|
||||
# À LA DEMANDE, et seulement à la demande. Deux raisons, chacune suffisante :
|
||||
#
|
||||
# 1. Ce workflow ne PEUT PAS aboutir sans un humain : l'auth Vault passe par
|
||||
# un flux OIDC dont le lien doit être ouvert dans un navigateur connecté.
|
||||
# Déclenché tout seul, il occupe un runner jusqu'à son timeout — et retarde
|
||||
# les runs que quelqu'un attend vraiment.
|
||||
# 2. Il fait `terraform apply` en `auto_approve` CONTRE LA PROD. Se déclencher
|
||||
# sur le push d'une branche, c'est appliquer du code que personne n'a relu.
|
||||
#
|
||||
# Au passage : `push` (toutes branches) + `pull_request` faisait partir DEUX runs
|
||||
# par commit d'une branche en PR — le même SHA, deux fois.
|
||||
on:
|
||||
workflow_dispatch: {}
|
||||
push:
|
||||
paths:
|
||||
- 'minio/**/*.tf'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'minio/**/*.tf'
|
||||
|
||||
# cancel any previously-started, yet still active runs of this workflow on the same branch
|
||||
concurrency:
|
||||
|
||||
Reference in New Issue
Block a user