Ant配置生成由Jenkins Git Plugin设置的简短格式的Git提交ID

时间:2018-02-13 13:35:02

标签: git jenkins ant

Jenkins Git插件使用Git commit SHA1 id设置GIT_COMMIT环境变量,长度为40个字符,我需要将其缩短为6个字符。 Ant捕获GIT_COMMIT环境变量,我不知何故应该缩短它。

1 个答案:

答案 0 :(得分:0)

以下是适用于我的Ant脚本:

<property environment="env"/>

<!-- https://stackoverflow.com/a/37896164/5903564 -->
<macrodef name="getsubstring">
  <attribute name="src"/>
  <attribute name="start"/>
  <attribute name="length"/>
  <attribute name="result"/>
  <sequential>
    <loadresource property="@{result}">
      <string value="@{src}}" />
        <filterchain>
          <tokenfilter>
            <replaceregex pattern="^.{@{start}}(.{@{length}}).*" replace="\1" />
          </tokenfilter>
        </filterchain>
    </loadresource>
  </sequential>
</macrodef>

<!-- Get the first 6 characters of git commit id -->
<getsubstring src="${env.GIT_COMMIT}" start="0" length="6" result="short-commit-id"/>

<echo>Short Git commit id: ${short-commit-id}</echo>

如果我没有使用Jenkins并且没有GIT_COMMIT变量,我会按照How to lookup the latest git commit hash from an ant build script获取提交ID,然后缩短它。