Project

General

Profile

Development #86395

Installer les pre-commit hooks automatiquement

Added by Valentin Deniaud 4 months ago. Updated 1 day ago.

Status:
Solution proposée
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 - Development #87970: installer devscriptsFermé08 March 2024

Actions

History

#1

Updated by Emmanuel Cazenave 3 months ago

#2

Updated by Gael Pasgrimaud 3 days 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 2 days 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 1 day 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 :

Also available in: Atom PDF