Конкурс: чтение метаданных ресурса git - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть конвейер конкурса:

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 Ответ

0 голосов
/ 19 сентября 2018

Ресурс Concourse git не предоставляет количество коммитов в ветви.

Я предлагаю использовать что-то более значимое, например хеш коммитов, который ресурс git Concourse делает доступным в виде файла .git/short_ref.

Если вам действительно нужно использовать количество коммитов (но зачем?), То вам нужно запустить команду git непосредственно в задаче Concourse, например git rev-list --count HEAD.

* 1009.* В приведенном выше конвейере задача использует образ Docker openjdk-8-alpine из репозитория java.Если это изображение содержит git, то все готово.Если нет, сначала я предлагаю посмотреть, предлагает ли репозиторий java вариант openjdk-8-alpine с установленным git.Если нет, вы должны создать свой собственный образ Docker, основываясь на openjdk-8-alpine.

Примечание по безопасности: у вас есть privileged: true.Возможно, вам это не нужно.

...