Project

General

Profile

Développement #86395

Installer les pre-commit hooks automatiquement

Added by Valentin Deniaud about 1 year ago. Updated 8 months ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
31 January 2024
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

Description

Sur une install fraîche il faut taper pre-commit install sur tous les repos :
  • C'est un peu long.
  • C'est facile à oublier (bien sûr la CI ne laissera pas passer).
  • Ça sort une erreur sur le hook wrap-and-sort et il faut aller lire les sources pour comprendre qu'il manque un apt install devscript, alors que ça pourrait être inclus dans les dépendances devinst.

Aucune idée de la complexité mais ça me paraîtrait un comportement sympa que devinst se charge de configurer tout ça.


Related issues

Related to Publik Installation Développeur - Développement #87970: installer devscriptsFermé08 March 2024

Actions
Related to Publik Installation Développeur - Développement #91402: Une option d’installation pour sauter l’activation automatique des hooks de pre-commit (?)Fermé04 June 2024

Actions

History

#1

Updated by Emmanuel Cazenave 11 months ago

#2

Updated by Gael Pasgrimaud 9 months ago

Ce patch marche pour moi:

diff --git a/tasks/install_source.yml b/tasks/install_source.yml
index 5e4b3ef..7874641 100644
--- a/tasks/install_source.yml
+++ b/tasks/install_source.yml
@@ -27,3 +27,21 @@
   args:
     chdir: "{{ repo_dir }}" 
   when: do_build  | default(true)
+
+- name: "check if pre-commit config exists in {{ repo_dir }}" 
+  stat:
+    path: "{{ repo_dir }}/.pre-commit-config.yaml" 
+  register: pre_commit_config
+
+- block:
+    - name: "check if pre-commit hook exists in {{ repo_dir }}" 
+      stat:
+        path: "{{ repo_dir }}/.git/hooks/pre-commit" 
+      register: pre_commit_hook
+
+    - name: "run pre-commit install in {{ repo_dir }}" 
+      command: "pre-commit install" 
+      args:
+        chdir: "{{ repo_dir }}" 
+      when: not pre_commit_hook.stat.get("executable")
+  when: pre_commit_config.stat.get("exists")

Il manque l'installation du binaire pre-commit. Il y a le choix entre installer le paquet, tester si le binaire est disponible ou ignorer les erreurs du pre-commit install.

#3

Updated by Emmanuel Cazenave 9 months ago

Gael Pasgrimaud a écrit :

Il manque l'installation du binaire pre-commit. Il y a le choix entre installer le paquet

Oui on peu ajouter ça roles/base/tasks/main.yml où il y a déjà toute une liste de paquets installés.

Si tu veux finaliser ça via une branche/PR etc, welcome, sinon merci pour le débroussaillage.

#4

Updated by Robot Gitea 9 months ago

  • Status changed from Nouveau to Solution proposée

(gpasgrimaud) a demandé une relecture de Emmanuel Cazenave (ecazenave) sur une pull request sur Gitea concernant cette demande :

#5

Updated by Robot Gitea 8 months ago

  • Status changed from Solution proposée to Solution validée

Emmanuel Cazenave (ecazenave) a approuvé une pull request sur Gitea concernant cette demande :

#6

Updated by Robot Gitea 8 months ago

  • Status changed from Solution validée to Résolu (à déployer)

Gael Pasgrimaud (gpasgrimaud) a mergé une pull request sur Gitea concernant cette demande :

#7

Updated by Paul Marillonnet 8 months ago

  • Related to Développement #91402: Une option d’installation pour sauter l’activation automatique des hooks de pre-commit (?) added
#8

Updated by Emmanuel Cazenave 8 months ago

  • Status changed from Résolu (à déployer) to Solution déployée
#9

Updated by Transition automatique 6 months ago

Automatic expiration

Also available in: Atom PDF