ان کان اڳ جو اسان موضوع تي هلون، مان هڪ اهم ۽ پيچيده موضوع تي رابطو ڪرڻ چاهيان ٿو. ورجن ڪرڻ سافٽ ويئر. توھان مختصر طور سمجھي سگھوٿا سمور کي ھن اسڪرين شاٽ ۾.
BRANCH=$(git branch | grep * | cut -d ' ' -f2)
echo "$BRANCH"
if [[ "$BRANCH" != "master" ]]; then
echo 'Branch is not master';
echo 'Aborting';
exit 1;
fi
ٻيو قدم معياري آهي mvn ڇڏڻ: تيار ڪريو اختيار سان بيچ موڊ
ڇڏڻ لاء برانچ ٺاهيو
رليز لاءِ هاٽ فڪس ٺاهڻ لاءِ توهان کي برانچ ٺاهڻ جي ضرورت آهي. اهو ئي آهي جيڪو ٽاسڪ ڪري ٿو ڇڏڻ لاء برانچ ٺاهيو. هن وٽ 2 قدم آهن.
پهريون قدم چيڪ ڪري ٿو ته برانچ نه آهي رکن ٿا، ۽ ٻيو چيڪ ڪري ٿو ته نسخو فائل ۾ آهي pom.xml لفظ تي مشتمل نه هو SNAPSHOT ·
BRANCH=$(git branch | grep * | cut -d ' ' -f2)
echo "$BRANCH"
if [[ "$BRANCH" == "master" ]]; then
echo 'Branch is master';
echo 'Aborting';
exit 1;
fi
echo "Get version package from pom.xml"
version=`python -c "import xml.etree.ElementTree as ET; print(ET.parse(open('pom.xml')).getroot().find('{http://maven.apache.org/POM/4.0.0}version').text)"`
echo "Check SNAPSHOT"
if [[ $version == "*SNAPSHOT*" ]]; then
echo "******************* W A R N I N G *************************"
echo "************ You are create branch for SNAPSHOTS ******************"
echo "***********************************************************"
exit 1
fi
ٻيو قدم ڊولپر ڪنيڪشن ۾ ڪنيڪشن اسڪيم کي تبديل ڪري ٿو HTTPS کان GIT تائين.
# Здесь получаем developerConnection из файла pom.xml
developerConnection=$(xmllint -xpath "/*[local-name() = 'project' ]//*[local-name() = 'developerConnection']/text()" pom.xml | sed 's|scm:git:ssh://||')
echo developerConnection
echo $developerConnection
# Здесь меняем / на : в URL для git_remote_url
git_remote_url=$(echo $developerConnection| sed 's/gitlab.com//gitlab.com:/g')
echo git_remote_url
echo $git_remote_url
git remote set-url origin $git_remote_url
# Если вы не используете ввстроенную возможность Teamcity получения user и email из ~/.gitconfig, то можно указать их здесь
echo 'git config user.name %TEAM_USER%'
git config user.name %TEAM_USER%
echo 'git config user.email %TEAM_USER_EMAIL%'
git config user.email %TEAM_USER_EMAIL%
# Здесь получаем версию из файла pom.xml
echo "Get version package from pom.xml"
version=`python -c "import xml.etree.ElementTree as ET; print(ET.parse(open('pom.xml')).getroot().find('{http://maven.apache.org/POM/4.0.0}version').text)"`
echo $version
# Почему-то без fetch выдавало ошибку.
git fetch
if [ `git branch -a | egrep "${version}$"` ]
then
echo "Branch exists"
exit 1
fi
# Создаем бранч той версии, который был в файле pom.xml
echo "Create branch"
git checkout -b $version
# Чистый git всегда предлагает настроить политику отправки.
git config --global push.default simple
# Пушим в ветку совпадающую с версией в pom.xml
echo "Push release branch"
git push --set-upstream origin $version
Maven increment bugfix
ڪم 6 حصن تي مشتمل آهي. اهو ٿي سگهي ٿو refactored، پر اهو اڃا تائين ڪم ڪري ٿو.
پهريون قدم چيڪ ڪرڻ آهي ته برنچ نه آهي رکن ٿا. جيڪڏهن برنچ رکن ٿا ڪم پوي ٿو.
BRANCH=$(git branch | grep * | cut -d ' ' -f2)
echo "$BRANCH"
if [[ "$BRANCH" == "master" ]]; then
echo 'Branch is master';
echo 'Aborting';
exit 1;
fi
# Здесь получаем версию из файла pom.xml
echo "Get version package from pom.xml"
BRANCH=`python -c "import xml.etree.ElementTree as ET; print(ET.parse(open('pom.xml')).getroot().find('{http://maven.apache.org/POM/4.0.0}version').text)"`
# Приходится делать checkout на нужный бранч.
# Иначе git status показывает detached к нужному бранчу.
# Нужно чтобы git status показывал просто бранч
git checkout $BRANCH
# Экспортируем переменную bash в переменную Teamcity для дальнейшего использования.
echo "##teamcity[setParameter name='BRANCH_FOR_INCREMENT' value='$BRANCH']"
ٻيو Maven قدم pom.xml فائل ۾ بگ فڪس ورزن کي تبديل ڪري رهيو آهي.
# Здесь получаем developerConnection из файла pom.xml
developerConnection=$(xmllint -xpath "/*[local-name() = 'project' ]//*[local-name() = 'developerConnection']/text()" pom.xml | sed 's|scm:git:ssh://||')
echo developerConnection
# Здесь меняем / на : в URL для git_remote_url
git_remote_url=$(echo $developerConnection| sed 's/gitlab.com//gitlab.com:/g')
echo git_remote_url
echo $git_remote_url
git remote set-url origin $git_remote_url
# Если вы не используете ввстроенную возможность Teamcity получения user и email из ~/.gitconfig, то можно указать их здесь
echo 'git config user.name %TEAM_USER%'
git config user.name %TEAM_USER%
echo 'git config user.email %TEAM_USER_EMAIL%'
git config user.email %TEAM_USER_EMAIL%
echo 'git add .'
git add .
echo 'git commit -m "Increment bugfix"'
git commit -m "Increment bugfix"
git push --set-upstream origin %BRANCH_FOR_INCREMENT%
پنجون قدم فائل مان حاصل ڪري رهيو آهي pom.xml نسخو ۽ ان ۾ انسٽال ٽيم شهر متغير TAG_FROM_VERSION. نوٽ ڪريو ته فائل مان ورجن pom.xml بغير خط v جي سامهون. ۽ ٽيگ، هن نسخي جي بنياد تي، اڳ ۾ ئي خط وي شروع ۾ آهي.
echo "Get version package from pom.xml"
VERSION_AFTER_CHANGE=`python -c "import xml.etree.ElementTree as ET; print(ET.parse(open('pom.xml')).getroot().find('{http://maven.apache.org/POM/4.0.0}version').text)"`
echo $VERSION_AFTER_CHANGE
echo "##teamcity[setParameter name='TAG_FROM_VERSION' value='v$VERSION_AFTER_CHANGE']"
ڇهين قدم - ٽيگنگ bugfix نسخو. اهو استعمال ڪيو ويندو آهي ماٿي ۾ گهربل اختيار سان مقصد.