GitLab-CI получает версию pom в конвейере - PullRequest
0 голосов
/ 05 сентября 2018

Я хотел бы создать образ докера с помощью gitlab CI с версией проекта в виде тега:

docker build -t dockerimage:VERSION-IN-POM .

В конвейере Дженкинса я получаю такую ​​версию:

${pom.version}

Можно ли прочитать аналогичную и удобную версию из gitlab CI? Или я должен написать сценарии для этого?

Ответы [ 3 ]

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

Если вы используете maven в среде сборки, вы можете использовать плагин помощи maven и grep для извлечения версии.

VERSION=$(mvn --non-recursive help:evaluate -Dexpression=project.version | grep -v '\[.*')
echo $VERSION
0 голосов
/ 26 мая 2019

эта работа для моей переменной: gitlab-ci.yml

    mvn -Dexec.executable='echo' -Dexec.args='${project.version}' --non-recursive exec:exec -q
0 голосов
/ 05 сентября 2018

Gitlab-CI не предлагает таких удобств, вместо этого он предлагает вам делать все, что вы хотите с помощью сценария оболочки. Это не очень сложно сделать в командном скрипте. Вы можете установить xmllint (apt install libxml2-utils в Ubuntu), а затем получить его с помощью простого запроса :

xmllint --xpath '/*[local-name()="project"]/*[local-name()="version"]/text()' pom.xml

Так что все это можно решить с помощью этих двух строк:

- apt install libxml2-utils
- docker build -t dockerimage:$(xmllint --xpath '/*[local-name()="project"]/*[local-name()="version"]/text()' pom.xml) .
...