web-dev-qa-db-fra.com

Jenkins transférant 0 fichier à l'aide du plugin de publication sur SSH

Je souhaite transférer des fichiers de mon espace de travail Jenkins post-build vers un emplacement sur un serveur distant. La construction se déroule sans problème pour toutes les étapes du travail, mais transfère toujours 0 fichier.

Voici la sortie de la console:

    Started by user Patrick
    Building in workspace /var/lib/jenkins/jobs/20eyes Build/workspace
    Fetching changes from the remote Git repository
    Fetching upstream changes from https://github.com/project/project.git
    using .gitcredentials to set credentials
    Checking out Revision a758e0f8e534271b999a2fc8696b6fd5a3d5e500 (Origin/master)
    executing script:

    cd /var/www/20eyes-web
    [SSH] exit-status: 0
    SSH: Connecting from Host [dev1.remotehost]
    SSH: Connecting with configuration [dev2.remotehost] ...
    SSH: Disconnecting configuration [dev2.remotehost] ...
    SSH: Transferred 0 file(s)
    Build step 'Send files or execute commands over SSH' changed build result to  SUCCESS
    Finished: SUCCESS

Le travail est configuré pour être construit après que n'importe quel commit soit poussé vers GitHub

L'ensemble de transfert est: Fichiers source:

/var/lib/jenkins/jobs/20eyes Build/workspace/**/*

Supprimer le préfixe:

/var/lib/jenkins/jobs/20eyes Build/workspace
22
whitepatrick

Je pense, problème à votre config. Nous avons 2 positions à configurer.

  1. Lors de la configuration du système (configuration globale). -> Si test ok ==> La configuration sur le serveur distant est ok.
  2. À votre projet. Nous nous concentrerons sur l'ensemble de transfert: (fichier source, supprimer le préfixe, répertoire distant)

    2.1 Fichier source: s'il est vide = répertoire de l'espace de travail. dans votre cas, je pense que vous devez saisir **/*
    2.2 Supprimer le préfixe: reportez-vous ici pour plus d'informations.
    2.3 Répertoire distant: s'il est vide = répertoire configuré lors de la configuration du système ci-dessus.

J'espère que ça aide! Désolé de mon anglais.

25
PhungLe

Chose rapide à essayer en premier: définissez le dossier Source uniquement avec: **/* pour voir si un fichier est copié. Si le fichier a été copié, regardez ici pour voir comment écrire le bon chemin ici

7
Popa Andrei

Mes conseils:

  1. Vous devez éviter d'utiliser des espaces dans le nom du travail Jenkins!
    • dans votre cas: nom 20eyes Build peut entraîner des problèmes dans la correspondance des fichiers/répertoires
  2. Vous devez utiliser des chemins relatifs et non absolus!
    • dans ton cas: /var/lib/jenkins/... doit être remplacé par un chemin relatif depuis l'espace de travail du travail
  3. Vous ne devez PAS copier tout l'espace de travail!
    • spécifiez uniquement les fichiers appropriés de la dernière génération (par exemple, le fichier WAR du répertoire cible)
  4. Vous devriez vérifier la documentation et les exemples de plugins Publish Over:
2
lu_ko

Dans mon cas, j'utilisais le chemin absolu (à partir de la racine) dans "Transfer Set Source Files:". Quand j'ai changé le chemin par rapport à l'espace de travail, ça a marché!

1
Shashi Ranjan