想使用 build.xml 文件比较 git 与 Jenkins 的提交差异
Would like to compare git commit differences from Jenkins using a build.xml file
我正在尝试使用 git-hub 分支中的 Jenkins 部署 Salesforce。我的需要是进行增量部署,因此我需要比较分支中的当前提交和先前提交。基于提交差异,我想创建一个 src 文件夹,其中包含在两次提交之间更改的文件。我正在尝试通过以下方式使用 env.GIT_COMMIT 和 env.GIT_PREVIOUS_SUCCESSFUL_COMMIT 收集当前和以前的提交:
<macrodef name="gitDiff">
<sequential>
<exec executable="git" outputproperty="git.diff">
<arg value="diff" />
<arg value="env.GIT_COMMIT" />
<arg value="env.GIT_PREVIOUS_SUCCESSFUL_COMMIT" />
</exec>
<echo message="Git difference is ${git.diff}."/>
</sequential>
</macrodef>
当我尝试打印当前和之前的提交时,我没有得到任何值。
<echo>Current GIT Commit : ${env.GIT_COMMIT}</echo>
<echo>Previous Known Successful GIT Commit : ${env.GIT_PREVIOUS_SUCCESSFUL_COMMIT}</echo>
ant 目标的输出如下:
Property "env.GIT_COMMIT" has not been set
[echo] Current GIT Commit : ${env.GIT_COMMIT}
Property "env.GIT_PREVIOUS_SUCCESSFUL_COMMIT" has not been set
[echo] Previous Known Successful GIT Commit : ${env.GIT_PREVIOUS_SUCCESSFUL_COMMIT}
关于如何获取 env.GIT_COMMIT 中的值的任何建议 env.GIT_PREVIOUS_SUCCESSFUL_COMMIT
首先,您需要使用 property
任务为环境变量设置前缀。
<property environment="env" />
另一个问题是 git exec 任务中的环境变量被设置为文字文本而不是 属性 引用。您需要使用 ${}
语法:
<macrodef name="gitDiff">
<sequential>
<exec executable="git" outputproperty="git.diff">
<arg value="diff" />
<arg value="${env.GIT_COMMIT}" />
<arg value="${env.GIT_PREVIOUS_SUCCESSFUL_COMMIT}" />
</exec>
<echo message="Git difference is ${git.diff}."/>
</sequential>
</macrodef>
我正在尝试使用 git-hub 分支中的 Jenkins 部署 Salesforce。我的需要是进行增量部署,因此我需要比较分支中的当前提交和先前提交。基于提交差异,我想创建一个 src 文件夹,其中包含在两次提交之间更改的文件。我正在尝试通过以下方式使用 env.GIT_COMMIT 和 env.GIT_PREVIOUS_SUCCESSFUL_COMMIT 收集当前和以前的提交:
<macrodef name="gitDiff">
<sequential>
<exec executable="git" outputproperty="git.diff">
<arg value="diff" />
<arg value="env.GIT_COMMIT" />
<arg value="env.GIT_PREVIOUS_SUCCESSFUL_COMMIT" />
</exec>
<echo message="Git difference is ${git.diff}."/>
</sequential>
</macrodef>
当我尝试打印当前和之前的提交时,我没有得到任何值。
<echo>Current GIT Commit : ${env.GIT_COMMIT}</echo>
<echo>Previous Known Successful GIT Commit : ${env.GIT_PREVIOUS_SUCCESSFUL_COMMIT}</echo>
ant 目标的输出如下:
Property "env.GIT_COMMIT" has not been set
[echo] Current GIT Commit : ${env.GIT_COMMIT}
Property "env.GIT_PREVIOUS_SUCCESSFUL_COMMIT" has not been set
[echo] Previous Known Successful GIT Commit : ${env.GIT_PREVIOUS_SUCCESSFUL_COMMIT}
关于如何获取 env.GIT_COMMIT 中的值的任何建议 env.GIT_PREVIOUS_SUCCESSFUL_COMMIT
首先,您需要使用 property
任务为环境变量设置前缀。
<property environment="env" />
另一个问题是 git exec 任务中的环境变量被设置为文字文本而不是 属性 引用。您需要使用 ${}
语法:
<macrodef name="gitDiff">
<sequential>
<exec executable="git" outputproperty="git.diff">
<arg value="diff" />
<arg value="${env.GIT_COMMIT}" />
<arg value="${env.GIT_PREVIOUS_SUCCESSFUL_COMMIT}" />
</exec>
<echo message="Git difference is ${git.diff}."/>
</sequential>
</macrodef>