"Bash(curl -fL \"https://raw.githubusercontent.com/gradle/gradle/v9.4.1/gradle/wrapper/gradle-wrapper.jar\" -o gradle/wrapper/gradle-wrapper.jar)",
"Bash(curl -fL \"https://raw.githubusercontent.com/gradle/gradle/v9.4.1/gradlew\" -o gradlew)",
"Bash(chmod +x gradlew)",
- "Bash(git ls-files *)"
+ "Bash(git ls-files *)",
+ "Bash(./gradlew --version)",
+ "Bash(chmod +x build.sh)",
+ "Bash(git mv *)",
+ "Bash(chmod +x branches.sh)",
+ "Bash(git check-ignore *)",
+ "Bash(git config *)",
+ "Bash(git restore *)",
+ "Bash(chmod +x patch-nexus.sh)",
+ "Bash(chmod +x diff.sh)"
]
}
}
## Skripte im Scripting-Branch
-Alle Skripte laden zuerst `BRANCHES.sh`, das die vollständige Branch-Liste und Eltern-Beziehungen definiert.
+Alle Skripte laden zuerst `branches.sh`, das die vollständige Branch-Liste definiert.
| Skript | Zweck |
|--------|-------|
-| `BRANCHES.sh` | Definiert alle Branch-Namen und ihre `__ROOT`-Eltern |
-| `REBASE.sh` | Rebasiert jeden Branch auf seinen `__ROOT`-Eltern |
-| `BUILD.sh` | Checkt jeden Branch aus und baut mit Maven + pusht Docker-Image |
-| `GRADLE.sh` | Wie BUILD.sh, aber mit Gradle |
-| `MAVEN.sh` | `mvn clean install` + `mvn docker:push` für alle Branches |
-| `PUSH.sh` | Force-pusht alle Branches zu origin (erstellt vorher zeitgestempelte Backup-Tags) |
-| `RESET.sh` | Setzt alle Branches auf `origin/<branch>` oder auf ein Tag-Präfix zurück (`./RESET.sh <prefix>`) |
-| `TAG.sh` | Taggt alle Branches als `<branch>--<prefix>` und pusht Tags (`./TAG.sh <prefix>`) |
-| `DIFF.sh` | Diff jedes Branches gegen Remote (oder gegen ein Tag-Suffix, falls angegeben) |
-| `COPY.sh` | Kopiert Branches in `../vorlagen`-, `../livecoding`-, `../spickzettel`-Verzeichnisse |
-| `patch_gradle_for_si_nexus.sh` | Patcht `build.gradle`/`settings.gradle` für internen Nexus-Mirror |
+| `branches.sh` | Definiert alle Branch-Namen und die Iterationsliste `$BRANCHES` |
+| `push.sh` | Force-pusht alle Branches zu origin (erstellt vorher zeitgestempelte Backup-Tags) |
+| `reset.sh` | Setzt alle Branches auf `origin/<branch>` oder auf ein Tag-Präfix zurück (`./reset.sh <prefix>`) |
+| `diff.sh` | Diff jedes Branches: gegen Remote (kein Arg), gegen Tag-Suffix (1 Arg) oder zwischen zwei Tags (2 Args) |
+| `build.sh` | Baut alle Branches (Maven + Gradle); mit `--publish` auch Docker-Images veröffentlichen |
+| `copy.sh` | Kopiert Branches in `../vorlagen`-, `../livecoding`-, `../spickzettel`-Verzeichnisse; mit `--nexus-url=<url>` Gradle-Setups für Nexus patchen |
+| `patch-nexus.sh` | Patcht `build.gradle`, `settings.gradle` und optional `gradle-wrapper.properties` für internen Nexus-Mirror |
Nach Massenoperationen immer zu `scripting` zurückkehren — Skripte führen am Ende `git checkout scripting` aus.
+### TGZ-Verzeichnisstruktur
+
+Branch-Namen bilden auch die Verzeichnisstruktur im verteilten TGZ ab: Der Branch `springkafka/technik-check--vorlage` wird als `springkafka/technik-check/` extrahiert. Von dort ist `../..` das Trainings-Wurzelverzeichnis. Das nutzt `bootstrap-gradle.sh` mit `--distribute`, um Gradle-Wrapper-Dateien in alle Geschwister-Übungsverzeichnisse zu kopieren.
+
+**Sonderfall `copy.sh`**: `springkafka/technik-check--vorlage` wird nach `vorlagen/grundlagen/technik-check/` kopiert (nicht `vorlagen/springkafka/`), da der Technik-Check thematisch zu den Grundlagen-Vorlagen gehört.
+
## Einen neuen Übungs-Branch hinzufügen
Diese beiden Stellen müssen immer gemeinsam aktualisiert werden — sie halten unterschiedliche Informationen: