web-dev-qa-db-fra.com

Différence entre 'Supprimer l'espace de travail avant le début de la construction' et 'Effacer le référentiel & forcer le clone' dans Jenkins

Je teste le plugin jenkins job-dsl. J'ai un projet existant dans lequel le paramètre "Supprimer l'espace de travail avant le début de la génération" est activé.

J'ai le DSL suivant défini:

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

Il semble que cela donne une configuration qui n’est pas vraiment la même chose, cela montre une option "Effacer le référentiel et forcer le clone". Ces options sont-elles vraiment la même chose au bout du compte ou existe-t-il des comportements différents?

11
Wim Deblauwe

En général, il n'y a pas de différence entre les deux options.

Ils sont fournis par différents plugins:

  • Wipe out repository & force clone fait partie du Git Plugin et ne convient que comme extension du plugin git 
  • Supprimer l'espace de travail avant le début de la génération fait partie du Workspace Clean Plugin

Les principales différences entre le plugin Workspace Clean et le plugin Git:

  • Non lié à Git SCM uniquement
  • Permet l'utilisation du modèle de fichier ant pour supprimer uniquement certains fichiers ou répertoires
8
CSchulz

Un comportement important de l'option "Supprimer le référentiel & forcer le clone" du plug-in Git est qu'il supprime uniquement le sous-répertoire du référentiel si vous en avez sélectionné un dans l'option "Extraire dans un sous-répertoire". Cela laissera le reste de votre espace de travail seul. Cela n'apparaît pas dans la documentation pour autant que je sache.

Vous pouvez obtenir un comportement similaire avec le plug-in Workspace Cleanup en spécifiant le sous-répertoire clone dans la section Configuration avancée "Modèle pour les fichiers à supprimer".

Le résultat final est exactement le même, mais selon mes observations, la suppression du plug-in Git était 5 secondes plus rapide que celle du plug-in Workspace Cleanup.

1
mikewaters