0

我有一个大厅管道:

groups: []
resources:
- name: source-code
  type: git
resource_types: []
jobs:
- name: build
  public: true
  plan:
  - get: source-code
  - task: build
    privileged: true
    config:
      platform: linux
      image_resource:
        type: docker-image
        source:
          repository: java
          tag: openjdk-8-alpine
      run:
        path: sh
        args:
        - -exc
        - |
          set -e -u -x

          MVN_VERSION=$(cat pom.xml | grep "^    <version>.*</version>$" | awk -F'[><]' '{print $3}')

          **CUSTOM_VERSION = [POM_FILE_VERSION]-build.[NO_OF_COMMITS_IN_BRANCH]** 
      inputs:
      - name: source-code

使用 Unix 命令,我想创建自定义版本:

CUSTOM_VERSION = [POM_FILE_VERSION]-build.[NO_OF_COMMITS_IN_BRANCH]

对于[POM_FILE_VERSION],我找到了代码:

MVN_VERSION=$(cat pom.xml | grep "^    <version>.*</version>$" | awk -F'[><]' '{print $3}')

但是对于[NO_OF_COMMITS_IN_BRANCH],我不知道如何从 git 资源中获取该数据。任何人都可以帮忙吗?

4

1 回答 1

1

Concourse git 资源不提供分支中的提交次数。

我建议使用更有意义的东西,例如提交哈希,Concourse git 资源将其作为.git/short_ref文件提供。

如果你真的需要使用提交次数(但为什么?),那么你需要git直接在 Concourse 任务中运行命令,例如git rev-list --count HEAD.

在上面的管道中,任务是使用存储库中的openjdk-8-alpineDocker 映像。java如果该图像包含git,则一切就绪。如果没有,我建议首先查看存储库是否提供安装 gitjava的变体。openjdk-8-alpine如果没有,您必须创建自己的 Docker 映像,基于openjdk-8-alpine.

安全说明:您已privileged: true指定。可能你不需要它。

于 2018-09-19T12:42:37.523 回答