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:
+10
-15
@@ -2,23 +2,18 @@
|
||||
# template source: https://github.com/bretfisher/docker-build-workflow/blob/main/templates/call-docker-build.yaml
|
||||
name: Hashicorp Vault
|
||||
|
||||
# ⚠ Triggers écrits EN TOUTES LETTRES, sans ancre YAML (`&`/`*`) : une ancre
|
||||
# dans un trigger Gitea Actions fait taire push ET pull_request, en silence
|
||||
# (vécu sur arcodange/kadans, issues 113 → 117) — c'est probablement pourquoi
|
||||
# ce workflow ne partait qu'à la main.
|
||||
# Et `*.tfvars` compte AUTANT que `*.tf` : la liste des applications (donc les
|
||||
# rôles gitea_cicd_<app>) vit dans terraform.tfvars — l'oublier, c'est ajouter
|
||||
# une app sans jamais créer son rôle.
|
||||
# À LA DEMANDE, et seulement à la demande — comme minio.yaml, et pour les mêmes
|
||||
# deux raisons : l'auth Vault exige qu'un humain ouvre un lien OIDC (sans lui, le
|
||||
# run squatte un runner jusqu'au timeout), et l'apply se fait en `auto_approve`
|
||||
# contre la prod.
|
||||
#
|
||||
# ⚠ Ce qui change AUSSI de nature : `hashicorp-vault/**/*.tfvars` compte autant
|
||||
# que `*.tf` — la liste des applications (donc les rôles gitea_cicd_<app>) vit
|
||||
# dans terraform.tfvars. Ce n'est plus un filtre de chemins mais ça reste vrai
|
||||
# du POURQUOI on relance : ajouter une app au tfvars sans relancer ce workflow,
|
||||
# c'est une app sans rôle CI.
|
||||
on:
|
||||
workflow_dispatch: {}
|
||||
push:
|
||||
paths:
|
||||
- 'hashicorp-vault/**/*.tf'
|
||||
- 'hashicorp-vault/**/*.tfvars'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'hashicorp-vault/**/*.tf'
|
||||
- 'hashicorp-vault/**/*.tfvars'
|
||||
|
||||
# cancel any previously-started, yet still active runs of this workflow on the same branch
|
||||
concurrency:
|
||||
|
||||
Reference in New Issue
Block a user