Конкурс: чтение метаданных ресурса git
У меня есть конвейер:
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. Может кто-нибудь помочь, пожалуйста?
1 ответ
Ресурс Concourse git не предоставляет количество коммитов в ветке.
Я предлагаю использовать что-то более значимое, например хеш коммита, который ресурс git Concourse делает доступным как .git/short_ref
файл.
Если вам действительно нужно использовать количество коммитов (но почему?), Тогда вам нужно запустить git
команда непосредственно в задаче Concourse, например git rev-list --count HEAD
,
В приведенном выше конвейере задача использует openjdk-8-alpine
Изображение докера из java
репозиторий. Если это изображение содержит git
тогда все готово. Если нет, я предлагаю сначала посмотреть, если java
хранилище предлагает вариацию openjdk-8-alpine
с установленным git. Если нет, вы должны создать свой собственный образ Docker, основанный на openjdk-8-alpine
,
Примечание по безопасности: у вас есть privileged: true
указано. Вероятно, вам это не нужно.