我有一个大厅管道:
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资源中获取该数据。有人可以帮忙吗?
答案 0 :(得分:0)
Concourse git资源未提供分支中的提交次数。
我建议使用更有意义的东西,例如提交哈希,Concourse git资源可以将其用作.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
。也许您不需要它。