【问题标题】:Jenkins transfering 0 files via publishing over SSHJenkins 通过 SSH 发布传输 0 个文件
【发布时间】:2017-05-07 00:25:49
【问题描述】:

我已经阅读了这 4 篇文章:

我们的问题似乎与该列表中的第一个问题最相似。

我们正在从构建我们的软件(以及我们需要的软件包)从 Windows 过渡到 Linux。设置 linux 构建确实有效,但是,生成的存档不会传输到我们的包服务器。相关控制台输出:

SSH: Connecting from host [intern2]
SSH: Connecting with configuration [intern2] ...
SSH: EXEC: STDOUT/STDERR from command [conda index /srv/pkgsrv/conda-repo/linux-64/] ...

updating index in: /srv/pkgsrv/conda-repo/linux-64
SSH: EXEC: completed after 1,001 ms
SSH: Disconnecting configuration [intern2] ...
SSH: Transferred 0 file(s)
Finished: SUCCESS

构建配置是:

Source files: conda-bld/linux-64/*.tar.bz2
Remove prefix: conda-bld/linux-64
Remote directory: conda-repo/linux-64/
Execute command: conda index /srv/pkgsrv/conda-repo/linux-64/

远程目录已经存在,jenkins 有权在那里写。相同的服务器配置(除了子目录)用于 windows 构建,并且它们被正确传输。 Jenkins 配置说:

HOME    /var/lib/jenkins
JENKINS_HOME    /var/lib/jenkins
PWD /var/lib/jenkins

我们正在构建的目录是 $HOME/conda-bld/linux-64。在那里我可以看到构建的 .tar.bz2 文件(已经积累了一些成功的构建)。

jenkins@intern2:~/conda-bld/linux-64$ ls
fonts-1-1.tar.bz2                    qjsonrpc-dev-1.0-12.tar.bz2  qjsonrpc-dev-1.0-6.tar.bz2  qjsonrpc-dev-1.0-9.tar.bz2
<otherproject>-0.1-19_g6fe33e2.tar.bz2  qjsonrpc-dev-1.0-13.tar.bz2  qjsonrpc-dev-1.0-7.tar.bz2  repodata.json
qjsonrpc-dev-1.0-10.tar.bz2          qjsonrpc-dev-1.0-14.tar.bz2  qjsonrpc-dev-1.0-8.tar.bz2  repodata.json.bz2

如果 jenkins 不复制,为什么不给出某种错误?我指定文件夹的方式有问题吗,因为我不知道是什么?我在哪里可以查找错误?

/edit:我查看了Jenkins日志发现

Dec 22, 2016 8:39:41 AM org.kohsuke.stapler.RequestImpl$TypePair convertJSON
WARNING: 'stapler-class' is deprecated: hudson.plugins.git.extensions.impl.RelativeTargetDirectory
Dec 22, 2016 8:39:41 AM org.kohsuke.stapler.RequestImpl$TypePair convertJSON
WARNING: 'stapler-class' is deprecated: hudson.tasks.Shell
Dec 22, 2016 8:39:41 AM org.kohsuke.stapler.RequestImpl$TypePair convertJSON
WARNING: 'stapler-class' is deprecated: jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin
Dec 22, 2016 8:40:15 AM hudson.model.Run execute
INFO: qjsonrpc-linux #15 main build action completed: SUCCESS

我会尝试更新 SSH Publish 插件,看看是否有帮助。

【问题讨论】:

    标签: linux git jenkins ssh


    【解决方案1】:

    问题是文件被构建到与 jenkins 工作目录不同的文件夹中,因为我忘记设置 CONDA_BLD_PATH。但是,在设置 CONDA_BLD_PATH 时,我们在构建包的过程中遇到了奇怪的错误。

    Making absolute symlink root/lib64/libqjsonrpc.so.1.0 -> libqjsonrpc.so.1.0.99 relative
    Traceback (most recent call last):
      File "/usr/local/lib/miniconda/bin/conda-build", line 6, in <module>
        sys.exit(conda_build.cli.main_build.main())
      File "/usr/local/lib/miniconda/lib/python2.7/site-packages/conda_build/cli/main_build.py", line 242, in main
        execute(sys.argv[1:])
      File "/usr/local/lib/miniconda/lib/python2.7/site-packages/conda_build/cli/main_build.py", line 234, in execute
        already_built=None, config=config)
      File "/usr/local/lib/miniconda/lib/python2.7/site-packages/conda_build/api.py", line 77, in build
        need_source_download=need_source_download, config=config)
      File "/usr/local/lib/miniconda/lib/python2.7/site-packages/conda_build/build.py", line 1099, in build_tree
        config=recipe_config)
      File "/usr/local/lib/miniconda/lib/python2.7/site-packages/conda_build/build.py", line 799, in build
        create_info_files(m, pkg_files, config=config, prefix=config.build_prefix)
      File "/usr/local/lib/miniconda/lib/python2.7/site-packages/conda_build/build.py", line 399, in create_info_files
        write_about_json(m, config)
      File "/usr/local/lib/miniconda/lib/python2.7/site-packages/conda_build/build.py", line 305, in write_about_json
        conda_info = subprocess.check_output([bin_path, 'info', '--json', '-s'])
      File "/usr/local/lib/miniconda/lib/python2.7/subprocess.py", line 574, in check_output
        raise CalledProcessError(retcode, cmd, output=output)
    subprocess.CalledProcessError: Command '['/usr/local/lib/miniconda/bin/conda', 'info', '--json', '-s']' returned non-zero exit status 1
    Build step 'Execute shell' marked build as failure
    

    我们最终还是构建到了错误的目录,然后在文件发布到后期构建步骤之前移动了这些文件。

    mkdir -p conda-bld/linux-64
    conda build src
    

    然后

    mv /var/lib/jenkins/conda-bld/linux-64/qjsonrpc*.tar.bz2 conda-bld/linux-64
    

    在设置 conda 路径时不确定构建有什么问题,但它现在可以工作了。

    【讨论】: