ProHoster > Blog > Rianachd > Automation HotFix ann am pròiseactan Maven a’ cleachdadh TeamCity
Automation HotFix ann am pròiseactan Maven a’ cleachdadh TeamCity
Bheir an dreuchd seo cunntas air stèidheachadh fèin-ghluasad HotFix ann am pròiseactan Maven a’ cleachdadh Teamcity.
Gus HotFix a dhèanamh, mar as trice bidh tòrr cheumannan làimhe air an dèanamh:
Cruthaich brunch airson an naidheachd a tha thu airson HotFix a sgaoileadh
Ceartaich bug ann an sgaoileadh
Atharraich an tionndadh bugfix anns a’ mheur fuasglaidh
Luchdaich a-nuas tag tionndadh bugfix
Faodar puingean 1,3,4 a bhith fèin-ghluasadach.
Mus gluais sinn air adhart chun chuspair, bu mhath leam suathadh air cuspair cudromach agus iom-fhillte - dreach bathar-bog. Faodaidh tu Semver a thuigsinn goirid san dealbh seo.
Faodaidh tu barrachd a leughadh aig a’ cheangal: 1.
Ann an Leasachadh Stèidhichte air Trunk, feumaidh tu do mheur fhèin a chruthachadh airson gach sgaoileadh. Tha a h-uile atharrachadh (hotfixes) taobh a-staigh an naidheachd seo dealasach don mheur seo.
Mar phàirt den phost seo, nì sinn fèin-ghluasad air na rudan a leanas:
Anns a h-uile gnìomh feumaidh tu sgrùdadh a dhèanamh air a’ bhogsa "Togail glan: Sguab às a h-uile faidhle san eòlaire pàighidh mus tèid a thogail“, oir às aonais a’ bhogsa-seic seo fhuair mi mearachdan.
Bidh sinn a’ cruthachadh aon VCS. Tha feartan VCS air an cuairteachadh ann an dearg.
Mar as trice bidh VCSn a’ cleachdadh an sgeama HTTPS. ANNS Sònrachadh meur: ainmichte a bhith a’ coimhead a h-uile brunches agus a h-uile tag:
+:refs/heads/*
+:refs/tags/*
Feumar 4 Paramadairean rèiteachaidh a chruthachadh.
BRANCH_FOR_INCREMENT
TAG_FROM_VERSION
TEAM_USER
TEAM_USER_EMAIL
Feumaidh an raon luach ann am BRANCH_FOR_INCREMENT agus TAG_FROM_VERSION fhàgail falamh.
Feumaidh tu iuchair phrìobhaideach a luchdachadh suas / a chur ris. Feumaidh a h-uile gnìomh ach CI Build iuchair phrìobhaideach.
Anns gach gnìomh, ach a-mhàin CI Build, anns an roinn Feartan Togbhail feumaidh tu iuchair phrìobhaideach a cheangal.
Eisimpleir airson Maven saor an asgaidh
Togalach CI**.
Ann an obair Togail CI dìreach aon cheum mvn glan deuchainn
Maven saor an asgaidh
Ann an obair Maven saor an asgaidh 2 cheum. Is e a’ chiad cheum dèanamh cinnteach gu bheil brunch ann mhaighstir. Mura h-eil brunch mhaighstir, an uairsin tha an obair a 'tuiteam.
BRANCH=$(git branch | grep * | cut -d ' ' -f2)
echo "$BRANCH"
if [[ "$BRANCH" != "master" ]]; then
echo 'Branch is not master';
echo 'Aborting';
exit 1;
fi
Tha an dàrna ìre - àbhaisteach mvn release: ullaich le roghainn --batch-modh
Cruthaich meur airson a leigeil ma sgaoil
Gus hotfix a chruthachadh airson sgaoilidh feumaidh tu meur a chruthachadh. Is e seo a bhios an taska a’ dèanamh Cruthaich meur airson a leigeil ma sgaoil. Tha 2 cheum aice.
Tha a 'chiad cheum a' dèanamh cinnteach nach eil brunch mhaighstir, agus bidh an dàrna sgrùdadh a’ dèanamh cinnteach gu bheil an dreach san fhaidhle pom.xml cha robh am facal ann 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
Bidh an dàrna ceum ag atharrachadh an sgeama ceangail ann an ceangal leasaiche bho HTTPS gu 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
Ceartachadh bug àrdachadh Maven
Tha an obair air a dhèanamh suas de 6 pàirtean. Dh’ fhaodadh e bhith air ath-leasachadh, ach tha e fhathast ag obair.
Is e a 'chiad cheum dèanamh cinnteach nach eil am brunch ann mhaighstir. Ma tha brunch mhaighstir tha an obair a 'tuiteam.
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']"
Tha an dàrna ceum Maven ag atharrachadh an tionndadh bugfix anns an fhaidhle pom.xml.
Amasan: Tha a h-uile dad aig Maven ann an aon loidhne
Bidh an ceathramh ceum ag atharrachadh an sgeama ceangail ann an ceangal leasaiche bho HTTPS gu GIT.
Agus a' putadh atharraichean dhan mheur a chaidh a shònrachadh ann an Teamcity leis an caochladair %BRANCH_FOR_INCREMENT%.
# Здесь получаем 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%
Tha an còigeamh ceum a 'faighinn bhon fhaidhle pom.xml version agus cuir a-steach e Sgioba caochlaideach TAG_FROM_VERSION. Thoir an aire gu bheil an tionndadh bhon fhaidhle pom.xml sin an litir v air thoiseach. Agus tha an taga, stèidhichte air an dreach seo, mar-thà air an litir v aig an toiseach.
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']"
An t-siathamh ceum - tagadh bugfix tionndaidhean. Tha seo air a dhèanamh a 'cleachdadh Maven leis an roghainn a tha a dhìth a-steach Amas.