【发布时间】:2019-07-26 15:02:11
【问题描述】:
在 Jenkinsfile 中编写 bash 脚本代码时我面临一些挑战。
UserCase:我在一个 GIT 存储库的文件夹结构中保留了多个工具代码。我希望每当任何开发人员对单个文件夹进行更改时,都会针对特定文件夹相关代码触发构建。
我的逻辑:选择最后两个提交,找出不同之处。在差异的基础上,根据更改的文件进行构建。
我编写了 bash 脚本,它在 linux 机器上运行良好。将其移入 Jenkinsfile 后,我遇到了一些错误。
这可能是特定的。
在这些方面需要帮助
#!/bin/bash
git log -2 --no-merges | grep commit > git_commit.txt
cat git_commit.txt
echo 'hi'
i=0;
while read -r line;
do
commit[$i]=`echo "$line" | awk '{print \$2}'`
i=$((i+1))
done < git_commit.txt
这不是完整的代码。我在赋值时遇到错误:
commit[$i]=`echo "$line" | awk '{print \$2}'`
如果您知道进一步的解释以提供帮助,请告诉我。
【问题讨论】:
-
嗨@jvipul你不应该把它存储为.sh文件并从jenkins执行吗?你的詹金斯管道代码是什么样的?
-
@Jvipul :“getting error”不是一个很有帮助的问题描述。詹金斯是否说“我不再爱你了”,或者错误是什么样的?另外,你确定 Jenkins 真的在 bash 下运行你的代码吗?
标签: bash jenkins-pipeline dash-shell jenkins-groovy groovyshell