it-swarm.com.de

Unterschied zwischen 'Arbeitsbereich vor dem Start des Builds löschen' und 'Repository auslöschen und Klonen erzwingen' in Jenkins?

Ich teste das Jenkins Job-DSL Plugin. Ich habe ein vorhandenes Projekt, in dem die Einstellung "Arbeitsbereich vor dem Start des Builds löschen" aktiviert ist.

Ich habe folgendes DSL definiert:

job("$basePath/my-project") {
    scm {
        git {
            remote {
                name('Origin')
                url('[email protected]:my-organisation/my-project.git')
            }
            branch('*/develop')
            extensions {
                wipeOutWorkspace()
                submoduleOptions {
                    recursive()
                }
            }
        }
    }
}

Es scheint, dass dies zu einer Konfiguration führt, die nicht wirklich die gleiche ist, sondern die Option "Repository auslöschen und Klonen erzwingen". Sind diese Optionen am Ende wirklich die gleichen oder gibt es unterschiedliche Verhaltensweisen?

11
Wim Deblauwe

Grundsätzlich besteht kein Unterschied zwischen beiden Optionen.

Sie werden von verschiedenen Plugins bereitgestellt:

  • Wipe out repository & force clone ist Teil des Git Plugin und nur als Erweiterung des git Plugins geeignet 
  • Arbeitsbereich vor dem Build löschen ist Teil des Workspace Clean Plugin

Die Hauptunterschiede zwischen dem Workspace Clean Plugin und dem Git Plugin:

  • Nicht nur an Git SCM gebunden
  • Ermöglicht die Verwendung eines Ant-Dateimusters, um nur einige Dateien oder Verzeichnisse zu löschen
8
CSchulz

Ein wichtiges Verhalten der Option "Wipe out Repository & Force Clone" des Git-Plugins besteht darin, dass nur das Repository-Unterverzeichnis gelöscht wird, wenn Sie unter "Auschecken in ein Unterverzeichnis" eines ausgewählt haben. Der Rest Ihres Arbeitsbereichs bleibt dabei allein. Soweit ich das beurteilen kann, erscheint dies nicht in der Dokumentation.

Ein ähnliches Verhalten können Sie mit dem Workspace Cleanup-Plugin erreichen, indem Sie das Klon-Unterverzeichnis im Abschnitt "Muster für zu löschende Dateien" unter Erweiterte Konfiguration angeben.

Das Endergebnis ist genau das gleiche, aber in meinen Beobachtungen war das Löschen des Git-Plugins 5 Sekunden schneller als das Workspace Cleanup-Plugin.

1
mikewaters