web-dev-qa-db-ja.com

Jenkinsは、SSHプラグイン経由のパブリッシュを使用して0ファイルを転送します

ビルド後のJenkinsワークスペースからリモートサーバー上の場所にファイルを転送したい。ビルドはジョブのすべてのステップでスムーズに進みますが、常に0ファイルを転送します。

これはコンソール出力です:

    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

コミットがGitHubにプッシュされた後にビルドするようにジョブが構成されます

転送セットは次のとおりです。ソースファイル:

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

プレフィックスを削除:

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

あなたの設定に問題があると思います。構成するポジションは2つあります。

  1. システム構成(グローバル構成)。 ->テストが正常な場合==>リモートサーバーへの設定は正常です。
  2. プロジェクトで。転送セットに焦点を当てます:(ソースファイル、プレフィックスの削除、リモートディレクトリ)

    2.1ソースファイル:空白の場合=ワークスペースディレクトリ。あなたの場合、**/*を入力する必要があると思います
    2.2プレフィックスの削除:詳細については、 ここ を参照してください。
    2.3リモートディレクトリ:空白の場合=上記のシステム構成で構成されているディレクトリ。

それが役立つことを願っています!私の英語についてすみません。

24
PhungLe

最初に試す簡単なこと:Sourceフォルダーを**/*のみで設定して、ファイルがコピーされているかどうかを確認します。ファイルがコピーされた場合は、ここを見て正しいパスの書き方を確認してください here

5
Popa Andrei

私のアドバイス:

  1. Jenkinsのジョブ名にスペースを使用しないでください!
    • あなたの場合:name 20eyes Buildは、ファイル/ディレクトリのマッチングでいくつかの問題を引き起こす可能性があります
  2. 絶対パスではなく相対パスを使用する必要があります!
    • あなたの場合:/var/lib/jenkins/...は、ジョブのワークスペースからの相対パスに置き換える必要があります
  3. ワークスペース全体をコピーしないでください!
    • 最後のビルドから適切なファイルのみを指定します(例:ターゲットディレクトリからのWARファイル)
  4. プラグイン経由で公開:のドキュメントと例を確認する必要があります
1
lu_ko

私の場合、「Transfer Set Source Files:」で絶対パス(ルートから)を使用していました。ワークスペースに関連するパスを変更すると、うまくいきました!

1
Shashi Ranjan