【发布时间】:2017-11-02 09:33:05
【问题描述】:
我的问题是我尝试执行 shell 脚本以通过 Jenkins 将创建的文件从 msbuild 复制到 AWS s3。
然后我添加了新的构建步骤“Execute Shell”并设置为通过命令执行 shell 脚本:sh publishS3.sh 没有任何反应,并且文件不会出现在 s3 存储桶中。 我的 Jenkins 使用本地 Windows 服务器。
然后我尝试通过在 Jenkins 本地目录中键入 sh publishS3.sh 来执行 shell 脚本,一切正常,文件被连续复制到 s3 存储桶,但是如果我尝试从 jenkins 执行此操作,则没有任何反应。我的 publishS3.sh 脚本是:
#!/bin/bash
aws s3 cp Com.VistaDraft.Common.dll s3://download.vistadraft.com/MVP
我试图通过在末尾添加命令 > output.txt 来检查执行后收到的女巫输出,但 Jenkins 会生成一个空文件。如果我尝试在本地做同样的事情,我会收到一条消息,说我将文件复制到 s3。我设置 jenkins C:\Program Files\Git\git-bash.exe 的 shell 脚本路径并在本地使用 git-bash.exe。也许谁知道问题出在哪里?请建议。
【问题讨论】:
-
如果命令产生错误,它可能不会在 stdout 上产生任何东西,所以你也需要使用
command > output.txt 2>&1捕获 stderr。一般来说,请确保 Jenkins / Jenkins 作业具有访问存储桶的正确凭据 -
@arco444 它有助于解决问题!我刚刚将aws路径添加到环境变量中,一切正常!请添加您的评论以回答我接受!
标签: bash shell amazon-web-services jenkins amazon-s3