首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >汇合:读取git资源元数据

汇合:读取git资源元数据
EN

Stack Overflow用户
提问于 2018-09-19 08:59:12
回答 1查看 1.4K关注 0票数 0

我有一条汇合管道:

代码语言:javascript
复制
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命令,我希望创建自定义版本:

代码语言:javascript
复制
CUSTOM_VERSION = [POM_FILE_VERSION]-build.[NO_OF_COMMITS_IN_BRANCH]

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

代码语言:javascript
复制
MVN_VERSION=$(cat pom.xml | grep "^    <version>.*</version>$" | awk -F'[><]' '{print $3}')

但是对于NO_OF_COMMITS_IN_BRANCH,,我不知道如何从git资源中获取数据。有人能帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2018-09-19 12:42:37

Concourse资源没有提供分支中提交的数量。

我建议使用一些更有意义的内容,比如提交哈希,commit资源将其作为.git/short_ref文件使用。

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

在上面的管道中,任务是使用来自openjdk-8-alpine存储库的java Docker映像。如果该图像包含git,那么您就都设置好了。如果没有,我建议首先看看java存储库是否提供了安装了git的openjdk-8-alpine的变体。如果不是,您必须基于openjdk-8-alpine创建自己的Docker映像。

安全注意:您已经指定了privileged: true。也许你不需要它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52401995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档