Ich möchte einen Befehl träge auf meinem CI-Server ausführen, wenn und nur wenn es eine Änderung in einem Unterverzeichnis gibt (zwischen den beiden letzten Commits), vorzugsweise mit git diff.Wie führe ich einen Befehl nur aus, wenn ein Unterverzeichnis mit git geändert wird?
Antwort
[[ -z "$(git diff --numstat your-sub-folder)" ]] || echo "Changes"
Wird git diff in einer Subshell ausgeführt werden, die Inhalte zu vergleichen in "your-Unterordner" und Echo Änderungen, wenn es irgendwelche Änderungen erkannt.
Sie können eine Art Dateisystemwatcher verwenden (wie zum Beispiel inotifywait), um den Trick zu machen.
Sorry, klärte jetzt die Frage. Es ist in einem Offline-Szenario, wo das CI einen Build ausführt, und ich möchte einige Befehle überspringen, wenn sich keine Dateien in einem Unterordner geändert haben. –
Es gibt auch eine Deamon-Variante - 'incrond' /' icrond'. Ich habe 'inotifywait | gemacht während gelesen ... 'Schleife. aber ich (n) crond kann es sehr leicht machen. – anishsane
- 1. Klonen nur ein Unterverzeichnis mit Git
- 2. Wie führe ich den Befehl git von build.gradle aus?
- 3. Wie führe ich einen Befehl von mit in MSI aus?
- 4. Wie führe ich einen Befehl mit String-Formatierung aus?
- 5. Wie führe ich eine bestimmte Funktion aus, wenn ein Feld in Odoo 8 geändert wird?
- 6. Wie führe ich einen bestimmten Befehl aus, wenn der vorherige Befehl einen Fehler zurückgegeben hat?
- 7. Wie führe ich einen Befehl aus und bekomme seine Ausgabe
- 8. Wie führe ich einen Windows cmd Befehl mit Qt?
- 9. Wie führe ich einen Befehl aus, bevor ein Bash-Skript beendet wird?
- 10. Wie führe ich einen Befehl im Hintergrund unter Windows aus?
- 11. Wie führe ich einen Befehl ohne Sudo?
- 12. git-Archiv ein Unterverzeichnis -
- 13. Wie führe ich einen Befehl in C# aus?
- 14. git: einen Zweig in ein Unterverzeichnis setzen
- 15. Wie führe ich jedes Mal einen Befehl aus, wenn ich von einem Rechner zum anderen ssh'ge?
- 16. git-Unterverzeichnis, das ignoriert wird
- 17. Wie führe ich einen go-Befehl aus, der nur die Abhängigkeiten des Anbieters nutzt?
- 18. Wie führe ich DDL nur aus, wenn keine Tabellen existieren?
- 19. Wie führe ich einen Task mit nur einer Task aus der Befehlszeile aus?
- 20. Wie führe ich ein Shell-Skript aus einem AppleScript aus?
- 21. Wie führe ich einen einzelnen Testfall mit Aktivator aus?
- 22. Wie führe ich einen Befehl als ein anderer Benutzer von einem Root-Cronjob aus?
- 23. Wie führe ich einen Befehl als ursprünglicher Benutzer aus einem sudo'd Programm aus?
- 24. Wie wird das Git Submodul in ein Unterverzeichnis verschoben?
- 25. Wie führe ich aus, wenn nur einmal konditioniert
- 26. Wie führe ich einen Befehl mit su Erlaubnis
- 27. Wie führe ich ein Glas aus einem Glas aus?
- 28. Wie führe ich einen Prozess mit nginx
- 29. Wie führe ich einen Befehl im Terminal aus einem Python-Skript aus?
- 30. Wie führe ich einen SSH-Befehl in einem BASH-Shell-Skript über ein PHP-Programm aus?
Sie haben also ein lokales Git Repo und möchten überprüfen, ob es Änderungen in Ihrem Code gibt (inszeniert oder/und nicht)? Und wenn ja, willst du einen Befehl ausführen? Bitte erläutern Sie die Details. – cb0