L'utilisation correcte de cachette\unstash dans un autre répertoire
Dans une de mes phases j'ai besoin de copier le contenu de deux dossiers lorsque la construction est terminée et le copier dans un autre répertoire.
Je suis actuellement à la conversion d'un freestyle de l'emploi dans le pipeline, et ont été à l'aide de l'artefact deployer plugin. La lecture de près, on dirait cachette et unstash commandes devraient aider avec ce que je veux atteindre.
Quelqu'un peut vérifier si c'est la bonne approche ci-dessous s'il vous plaît?
stage('Build') {
steps {
sh '''
gulp set-staging-node-env
gulp prepare-staging-files
gulp webpack
'''
stash includes: '/dist/**/*', name: 'builtSources'
stash includes: '/config/**/*', name: 'appConfig'
dir('/some-dir') {
unstash 'builtSources'
unstash 'appConfig'
}
}
}
Si je change dir en une seule étape, est-ce à dire que toutes les autres étapes, par la suite, va essayer d'exécuter des commandes à partir de ce répertoire, ou font-ils de retour à l'aide de l'espace de travail par défaut emplacement?
Grâce
MODIFIER
J'ai réalisé ce que je veux faire est de copier construit sources vers un autre nœud (en exécutant un système d'exploitation différent). Donc, dans mon extrait de j'ai partagé, où je suis commutation des répertoires, le répertoire est en fait d'être sur une autre machine (nœud) que j'ai de l'installation.
Aurais-je besoin de mettre la dir()
bloc avec un node('my-node-name')
bloc? Im de la difficulté à trouver des exemples.
Grâce
OriginalL'auteur mindparse | 2017-03-27
Vous devez vous connecter pour publier un commentaire.
J'espère qu'il est censé être:
où dist et config sont les répertoires dans le chemin d'accès de l'espace de travail, de sorte qu'il devrait être un chemin d'accès relatif, comme ci-dessus.
Reste semble correct, pour n'en citer que path "/quelques-dir" doit être accessible en écriture par jenkins user (utilisateur utilisé pour exécuter jenkins démon).
Et oui, il retombe à son plus enveloppant chemin d'accès de l'espace de travail (dans ce cas par défaut) lorsqu'il quitte dir bloc.
MODIFIER
Ainsi, lorsque vous placez un chemin, il est disponible pour être unstashed à toute étape ultérieure dans le pipeline. Si oui, vous pourriez mettre
dir
bloc sous unnode('<nodename>')
bloc.Vous pouvez ajouter quelque chose comme ceci :
modifié la réponse. L'espoir de résoudre votre souci.
Comment vous placez des fichiers sur un chemin relatif? J'utilise inclut: '../../../.gradle/**' par exemple, et j'ai "pas de fichiers inclus dans le stash' et je sais qu'ils sont là
OriginalL'auteur rusia.inc