ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ืคื•ืกื˜ ื–ื” ื™ืชืืจ ืืช ื”ื’ื“ืจืช ื”ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช Teamcity.

ื›ื“ื™ ืœื‘ืฆืข HotFix, ื”ืจื‘ื” ืฉืœื‘ื™ื ื™ื“ื ื™ื™ื ื ืขืฉื™ื ื‘ื“ืจืš ื›ืœืœ:

  1. ืฆื•ืจ ื‘ืจืื ืฅ' ืขื‘ื•ืจ ื”ืžื”ื“ื•ืจื” ืฉื‘ื” ืืชื” ืจื•ืฆื” ืœื”ืคื™ืฅ ืืช HotFix
  2. ืชืงืŸ ื‘ืื’ ื‘ืฉื—ืจื•ืจ
  3. ืฉื ื” ืืช ื’ืจืกืช ืชื™ืงื•ืŸ ื”ื‘ืื’ื™ื ื‘ืขื ืฃ ื”ืฉื—ืจื•ืจ
  4. ืคืจืกื ืชื’ ื’ืจืกืช ืชื™ืงื•ืŸ ื‘ืื’ื™ื

ื ืงื•ื“ื•ืช 1,3,4 ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช.

ืœืคื ื™ ืฉื ืขื‘ื•ืจ ืœื ื•ืฉื, ื‘ืจืฆื•ื ื™ ืœื’ืขืช ื‘ื ื•ืฉื ื—ืฉื•ื‘ ื•ืžื•ืจื›ื‘ - ื ื™ื”ื•ืœ ื’ืจืกืื•ืช ืชื•ึนื›ื ึธื”. ืืชื” ื™ื›ื•ืœ ืœื”ื‘ื™ืŸ ื‘ืงืฆืจื” ืืช Semver ื‘ืฆื™ืœื•ื ืžืกืš ื–ื”. ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ืชื•ื›ืœ ืœืงืจื•ื ืขื•ื“ ื‘ืงื™ืฉื•ืจ: 1.

ื›ืœ ื”ื”ื’ื“ืจื•ืช ื”ืžืชื•ืืจื•ืช ื‘ืคื•ืกื˜ ื–ื” ืžื‘ื•ืกืกื•ืช ืขืœ ืกืžื‘ืจ ะธ ืคื™ืชื•ื— ืžื‘ื•ืกืก ืชื ืžื˜ืขืŸ.

ื‘ืคื™ืชื•ื— ืžื‘ื•ืกืก Trunk, ืขืœื™ืš ืœื™ืฆื•ืจ ืกื ื™ืฃ ืžืฉืœืš ืขื‘ื•ืจ ื›ืœ ืžื”ื“ื•ืจื”. ื›ืœ ื”ืฉื™ื ื•ื™ื™ื (ื”ืชื™ืงื•ื ื™ื ื”ื—ืžื™ื) ื‘ืชื•ืš ืžื”ื“ื•ืจื” ื–ื• ืžื—ื•ื™ื‘ื™ื ืœืกื ื™ืฃ ื–ื”.

ื›ื—ืœืง ืžื”ืคื•ืกื˜ ื”ื–ื”, ื ื”ืคื•ืš ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื ืœืื•ื˜ื•ืžื˜ื™ื™ื:

  • ื‘ื ื™ื™ืช CI

  • ื™ืฆื™ืจืช ืžื”ื“ื•ืจื” ื—ื“ืฉื”

  • ื™ืฆื™ืจืช ืกื ื™ืฃ ืฉื—ืจื•ืจ

  • ืฉื™ื ื•ื™ ื’ืจืกืช ืชื™ืงื•ื ื™ ื”ื‘ืื’ื™ื

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ื“ืจื™ืฉื•ืช:

  • ืžืื’ืจ Git ืœืื—ืกื•ืŸ ื”ืงื•ื“ ืฉืœืš. ื”ืคื•ืกื˜ ื™ืฉืชืžืฉ ื‘ืžืื’ืจ https://gitlab.com/anton_patsev/automation-maven-hotfix.
  • ืฉืจืช ื•ืกื•ื›ืŸ ืฉืœ Teamcity. ืืชื” ื™ื›ื•ืœ ืœื”ืขืœื•ืช ืืช ื”ืฉืจืช ื•ื”ืกื•ื›ืŸ ื”ืžืงื•ืžื™ ืฉืœ Teamcity ื‘ืืžืฆืขื•ืช ื”ื“ื•ืงืจ-ื”ืœื—ื ื”
  • ื”ื™ื›ืŸ ืฉื™ืฉ ืœืš ืกื•ื›ืŸ Teamcity, ื™ืฉ ืœื”ืชืงื™ืŸ java, maven, git

ื‘ื•ืื• ื ื™ืฆื•ืจ ืืช ืคืจื•ื™ืงื˜ "ื”ืชื™ืงื•ืŸ ื”ื—ื ืฉืœ ืื•ื˜ื•ืžืฆื™ื” ืžื™ื™ื‘ืŸ" ื‘-Teamcity ื•ื ื™ืฆื•ืจ ืฉื 4 ืžืฉื™ืžื•ืช.

  • CI Build

  • ืฆื•ืจ ืกื ื™ืฃ ืœืฉื—ืจื•ืจ

  • ืชื™ืงื•ืŸ ื‘ืื’ื™ื ืฉืœ Maven ื”ื’ื“ืœ (ืฉื ื” ื’ืจืกืช ืชื™ืงื•ืŸ ื‘ืื’ื™ื))

  • ืžื”ื“ื•ืจื” ืฉืœ Maven (ื™ืฆื™ืจืช ืžื”ื“ื•ืจื” ื—ื“ืฉื”)

ืฆื™ืœื•ื ืžืกืš ืฉืœ ื”ืคืจื•ื™ืงื˜:

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ะžะฑั‰ะธะต ะฝะฐัั‚ั€ะพะนะบะธ

ื‘ื›ืœ ื”ืžืฉื™ืžื•ืช ืขืœื™ืš ืœืกืžืŸ ืืช ื”ืชื™ื‘ื” "ื‘ื ื™ื™ื” ื ืงื™ื™ื”: ืžื—ืง ืืช ื›ืœ ื”ืงื‘ืฆื™ื ื‘ืกืคืจื™ื™ืช ื”ืชืฉืœื•ื ืœืคื ื™ ื”ื‘ื ื™ื™ื”", ื›ื™ ื‘ืœื™ ืชื™ื‘ืช ื”ืกื™ืžื•ืŸ ื”ื–ื• ืงื™ื‘ืœืชื™ ืฉื’ื™ืื•ืช.

ืื ื• ื™ื•ืฆืจื™ื VCS ื™ื—ื™ื“. ืชื›ื•ื ื•ืช VCS ืžื•ืงืคื•ืช ื‘ืขื™ื’ื•ืœ ื‘ืื“ื•ื.

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ื‘ื“ืจืš ื›ืœืœ VCSs ืžืฉืชืžืฉื™ื ื‘ืกื›ื™ืžืช HTTPS. IN ืžืคืจื˜ ืกื ื™ืฃ: ืฆื™ื™ื ื• ืœืฆืคื•ืช ื‘ื›ืœ ื”ื‘ืจืื ืฅ' ื•ื‘ื›ืœ ื”ืชื’ื™ื:

+:refs/heads/*
+:refs/tags/*

ื™ืฉ ืฆื•ืจืš ืœื™ืฆื•ืจ 4 ืคืจืžื˜ืจื™ ืชืฆื•ืจื”.

  • BRANCH_FOR_INCREMENT
  • TAG_FROM_VERSION
  • TEAM_USER
  • TEAM_USER_EMAIL

ื™ืฉ ืœื”ืฉืื™ืจ ืืช ืฉื“ื” ื”ืขืจืš ื‘-BRANCH_FOR_INCREMENT ื•ื‘-TAG_FROM_VERSION ืจื™ืง.

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ืขืœื™ืš ืœื”ืขืœื•ืช/ืœื”ื•ืกื™ืฃ ืžืคืชื— ืคืจื˜ื™. ื›ืœ ื”ืžืฉื™ืžื•ืช ืžืœื‘ื“ CI Build ื“ื•ืจืฉื•ืช ืžืคืชื— ืคืจื˜ื™.

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ื‘ื›ืœ ืžืฉื™ืžื”, ืžืœื‘ื“ CI Build, ื‘ืงื˜ืข Build Features ืขืœื™ืš ืœื—ื‘ืจ ืžืคืชื— ืคืจื˜ื™.

ื“ื•ื’ืžื” ืœ ืฉื—ืจื•ืจ ืžื™ื™ื‘ืŸ

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

CI Build**.

ื‘ืžืฉื™ืžื” CI Build ืจืง ืฆืขื“ ืื—ื“ ื‘ื“ื™ืงื” ื ืงื™ื™ื” ืฉืœ mvn

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ืฉื—ืจื•ืจ ืžื™ื™ื‘ืŸ

ื‘ืžืฉื™ืžื” ืฉื—ืจื•ืจ ืžื™ื™ื‘ืŸ 2 ืฉืœื‘ื™ื. ื”ืฉืœื‘ ื”ืจืืฉื•ืŸ ื”ื•ื ืœื‘ื“ื•ืง ืฉื‘ืจืื ืฅ' ื–ื” ืื‘. ืื ื‘ืจืื ืฅ' ืœื ืื‘, ื•ืื– ื”ืžืฉื™ืžื” ื ื•ืคืœืช.

BRANCH=$(git branch | grep * | cut -d ' ' -f2)
echo "$BRANCH"
if [[ "$BRANCH" != "master" ]]; then
  echo 'Branch is not master';
  echo 'Aborting';
  exit 1;
fi

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ื”ืฉืœื‘ ื”ืฉื ื™ ื”ื•ื ืกื˜ื ื“ืจื˜ื™ ืฉื—ืจื•ืจ mvn: ืœื”ืชื›ื•ื ืŸ ืขื ืืคืฉืจื•ืช --ืžืฆื‘ ืืฆื•ื•ื”

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ืฆื•ืจ ืกื ื™ืฃ ืœืฉื—ืจื•ืจ

ื›ื“ื™ ืœื™ืฆื•ืจ ืชื™ืงื•ืŸ ื—ื ืœื’ืจืกื”, ืขืœื™ืš ืœื™ืฆื•ืจ ืกื ื™ืฃ. ื–ื” ืžื” ืฉื”ื˜ืืกื” ืขื•ืฉื” ืฆื•ืจ ืกื ื™ืฃ ืœืฉื—ืจื•ืจ. ื™ืฉ ืœื” 2 ืžื“ืจื’ื•ืช.

ื”ืฆืขื“ ื”ืจืืฉื•ืŸ ื‘ื•ื“ืง ืฉื‘ืจืื ืฅ' ืœื ืื‘, ื•ื”ืฉื ื™ ื‘ื•ื“ืง ืฉื”ื’ืจืกื” ื ืžืฆืืช ื‘ืงื•ื‘ืฅ pom.xml ืœื ื”ื›ื™ืœ ืืช ื”ืžื™ืœื” ืกื ืืคืฆ'ื•ื˜

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

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ื”ืฉืœื‘ ื”ืฉื ื™ ืžืฉื ื” ืืช ืกื›ื™ืžืช ื”ื—ื™ื‘ื•ืจ ื‘-DeveloperConnection ืž-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

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ืชื™ืงื•ืŸ ื‘ืื’ื™ื ืฉืœ Maven ื”ื’ื“ืœ

ื”ืžืฉื™ืžื” ืžื•ืจื›ื‘ืช ืž-6 ื—ืœืงื™ื. ื–ื” ื”ื™ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžืฉื•ื—ื–ืจ, ืื‘ืœ ื–ื” ืขื“ื™ื™ืŸ ืขื•ื‘ื“.

ื”ืฆืขื“ ื”ืจืืฉื•ืŸ ื”ื•ื ืœื‘ื“ื•ืง ืฉื”ื‘ืจืื ืฅ' ืœื ืื‘. ืื ื‘ืจืื ืฅ' ืื‘ ื”ืžืฉื™ืžื” ื ื•ืคืœืช.

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']"

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ื”ืฉืœื‘ ื”ืฉื ื™ ืฉืœ Maven ื”ื•ื ืฉื™ื ื•ื™ ื’ืจืกืช ืชื™ืงื•ืŸ ื”ื‘ืื’ื™ื ื‘ืงื•ื‘ืฅ pom.xml.

ืžื˜ืจื•ืช: ืœ-Maven ื™ืฉ ื”ื›ืœ ื‘ืฉื•ืจื” ืื—ืช

build-helper:parse-version versions:set -DnewVersion=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion} versions:commit

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ื”ืฉืœื‘ ื”ืฉืœื™ืฉื™ ื”ื•ื ื”ืฆื’ืช ืžื™ื“ืข ืกื˜ื˜ื•ืก Git ื•ืื—ืจื™ื:

echo 'cat pom.xml'
cat pom.xml
echo 'git status'
git status
echo 'git remote -v'
git remote -v
echo 'git branch'
git branch

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ื”ืฉืœื‘ ื”ืจื‘ื™ืขื™ ืžืฉื ื” ืืช ืกื›ื™ืžืช ื”ื—ื™ื‘ื•ืจ ื‘-DeveloperConnection ืž-HTTPS ืœ-GIT.

ื•ื“ื•ื—ืฃ ืฉื™ื ื•ื™ื™ื ืœืขื ืฃ ืฉืฆื•ื™ืŸ ื‘-Teamcity ืขืœ ื™ื“ื™ ื”ืžืฉืชื ื” %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%

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ื”ืฉืœื‘ ื”ื—ืžื™ืฉื™ ื”ื•ื ืงื‘ืœืช ืžื”ืงื•ื‘ืฅ pom.xml ื’ืจืกื” ื•ืžืชืงื™ืŸ ืื•ืชื” ื‘ ืขื™ืจ ืฆื•ื•ืช ืžืฉืชื ื” TAG_FROM_VERSION. ืฉื™ืžื• ืœื‘ ืฉื”ื’ืจืกื” ืžื”ืงื•ื‘ืฅ pom.xml ื‘ืœื™ ื”ืื•ืช v ืžืœืคื ื™ื. ื•ื”ืชื’ื™ืช, ื‘ื”ืชื‘ืกืก ืขืœ ื’ืจืกื” ื–ื•, ื›ื‘ืจ ื›ื•ืœืœืช ืืช ื”ืื•ืช 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']"

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ืฉืœื‘ ืฉื™ืฉื™ - ืชื™ื•ื’ ืชื™ืงื•ืŸ ื‘ืื’ื™ื ื’ืจืกืื•ืช. ื–ื” ื ืขืฉื” ื‘ืืžืฆืขื•ืช Maven ืขื ื”ืืคืฉืจื•ืช ื”ื ื“ืจืฉืช ื‘ ืžื˜ืจื”.

ืืคืฉืจื•ืช ืฉืขืจื™ื:

-Dtag=%TAG_FROM_VERSION% scm:tag

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ HotFix ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Maven ื‘ืืžืฆืขื•ืช TeamCity

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”