Конкурс: чтение метаданных ресурса 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 указано. Вероятно, вам это не нужно.

Другие вопросы по тегам