Perforce: как вы интегрируете, безопасно разрешаете и программно отправляете между ветвями в CI - PullRequest
0 голосов
/ 14 июля 2020

Я хотел бы создать скрипт, который запускается в CI в ритме, который интегрирует, безопасно разрешает и отправляет мою основную ветку в мою ветку dev, чтобы обновлять ветку dev.

Ответы [ 2 ]

1 голос
/ 15 июля 2020

Используйте следующие команды:

  • интегрировать: p4 integrate
  • безопасное разрешение: p4 resolve -as
  • отправить: p4 submit

Выполнение этих команд в CI зависит от вашей инфраструктуры CI.

0 голосов
/ 16 июля 2020

Я придумал сценарий на основе вашего ответа Samwise. Этот сценарий отменяет и удаляет список изменений, если отправка завершается неудачно, поскольку ручное слияние должно выполняться другим пользователем в другой рабочей области за пределами CI

echo "**** Integrating"
p4 integrate //master/branch/... //dev/branch/...
echo "**** Safe Resolving"
p4 resolve -as
echo "**** Submitting"
touch output.txt
p4 submit -d "Nightly merge from Master to Dev Stream" 2>&1 | tee output.txt
echo "**** output.txt"
cat output.txt
RESULT=$(grep ".*Submit failed -- fix problems above then use.*" output.txt)
echo "**** Grep error RESULT: $RESULT"
if [ -n "$RESULT" ]; then
# example line
# [08:00:32][Step 1/1] Submit failed -- fix problems above then use 'p4 submit -c 27831'.
CL=$(grep ".*Submit failed.*p4 submit -c.*" output.txt | sed -n "s/^.*c \([0-9]*\)'\./\1/p")
echo "**** Changelist to revert and delete: $CL"
echo "**** Revert Changelist"
p4 revert -c "$CL" //...
echo "**** Delete Changelist"
p4 change -d "$CL"
exit 1
fi
...