Инструменты пользователя

Инструменты сайта


service:teamcity

Teamcity

Система CI/CD фирмы Jetbrains.

Tutorials
CI/CD with JetBrains TeamCity (TechWorld with Nana)

Задать параметр из задачи

Сначала нужно прописать пустой параметр (здесь: version) в задачу.
Потом в задаче сделать шаг command line, где

# Строка "v2.2.231 certified" из последнего коммита, где убраны все символы, кроме цифр, точки и дефиса
version=$(git log --format=%B -n 1 |grep certified |sed 's#[^0-9\.-]##g')
# $version в одинарных кавычках здесь интерпретируется
echo "##teamcity[setParameter name='version' value='$version']"
# Заданный параметр можно использовать только в следующих шагах, в этом же шаге %version% не сработает!
echo "### BUILDING VERSION $version ###"

В следующих шагах уже можно ссылаться на этот параметр, например,

curl -ku %nexus_user%:%nexus_pass% -T ./target/platform.war \
"https://nexus.int.example.com/repository/project-maven-lib/company/platform/%version%/platform-%version%.war"

https://stackoverflow.com/questions/20829161/teamcity-using-setparameter-to-pass-information-between-build-steps

Изменить параметры агента

Проблема - проект собирается с неверными региональными настройками ru_RU.CP1251, хотя в ~/.bashrc у серверного юзера прописано ru_RU.UTF-8. В агенте Тимсити в параметрах в переменных окружения прописано LANG=ru_RU.CP1251.

Решение: в файле <agent home>/conf/buildAgent.properties добавить параметр, например,

nano /opt/app/Teamcity/buildAgent/conf/buildAgent.properties
 
env.LANG=ru_RU.UTF-8

Потом перезапустить агента (можно из GUI → Agents → [pool]).

https://www.jetbrains.com/help/teamcity/9.0/project-and-agent-level-build-parameters.html#agent-level-build-parameters-agentspecific

Вызов одной задачи из другой с передачей параметров

curl -ku admin:admin -X POST \
http://teamcity.example.com:8111/httpAuth/action.html?add2Queue=MyBuildConf&name=<full property name1>&value=<value1>&name=<full property name2>&value=<value2>

https://www.jetbrains.com/help/teamcity/accessing-server-by-http.html#Triggering+a+Custom+Build

Tips & tricks

Использование % в скриптах

Нужно удваивать.

version=$(date +'%%Y-%%m-%%d-%%H-%%M-%%S')

Версия, тэг и описание коммита

#str="v2.2.187 #468350 Add crutches and bicycles"
str=$(git log --format=%B -n 1 |grep ^v)
read -r tag desc <<< $str
version="${tag/v/}"
echo "##teamcity[setParameter name='version' value='$version']"
echo "### BUILDING VERSION $version ###"
echo "### $desc ###"
git config --local user.email "worker@example.com"
git config --local user.name "Teamcity worker"
git tag -a $tag -m "$desc"
service/teamcity.txt · Последнее изменение: 26.03.2025 11:26 — viacheslav

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki