āĻāĻ āĻĒā§āĻ¸ā§āĻāĻāĻŋ āĻāĻŋāĻŽāĻ¸āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŽāĻžāĻā§āĻ¨ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ¤ā§ āĻšāĻāĻĢāĻŋāĻā§āĻ¸ āĻ āĻā§āĻŽā§āĻļāĻ¨ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻĻā§āĻŦā§āĨ¤
HotFix āĻāĻ°āĻ¤ā§, āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻĒāĻĻāĻā§āĻˇā§āĻĒ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
- āĻāĻĒāĻ¨āĻŋ āĻ¯ā§ āĻ°āĻŋāĻ˛āĻŋāĻāĻāĻŋāĻ¤ā§ HotFix āĻ°ā§āĻ˛ āĻāĻāĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦā§āĻ°āĻžāĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ā§ˇ
- āĻ°āĻŋāĻ˛āĻŋāĻā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ āĻ āĻŋāĻ āĻāĻ°ā§āĻ¨
- āĻ°āĻŋāĻ˛āĻŋāĻ āĻļāĻžāĻāĻžāĻ¯āĻŧ āĻŦāĻžāĻāĻĢāĻŋāĻā§āĻ¸ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨
- āĻŦāĻžāĻāĻĢāĻŋāĻā§āĻ¸ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻā§āĻ¯āĻžāĻ āĻ°ā§āĻ˛ āĻāĻāĻ āĻāĻ°ā§āĻ¨
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ 1,3,4 āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋāĻ¤ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻā§, āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻāĻŦāĻ āĻāĻāĻŋāĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ - āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¸āĻĢāĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°. āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻāĻāĻŋāĻ¤ā§ āĻ¸ā§āĻŽāĻāĻžāĻ°āĻā§ āĻ¸āĻāĻā§āĻˇā§āĻĒā§ āĻŦā§āĻāĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ˛āĻŋāĻā§āĻā§ āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
āĻāĻ āĻĒā§āĻ¸ā§āĻā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻā§āĻ°āĻžāĻā§āĻ-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻŦāĻŋāĻāĻžāĻļā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻļāĻžāĻāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻ āĻ°āĻŋāĻ˛āĻŋāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ (āĻšāĻāĻĢāĻŋāĻā§āĻ¸) āĻāĻ āĻļāĻžāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻŦāĻĻā§āĻ§āĨ¤
āĻāĻ āĻĒā§āĻ¸ā§āĻā§āĻ° āĻ āĻāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻŦ:
-
āĻ¸āĻŋāĻāĻ āĻŦāĻŋāĻ˛ā§āĻĄ
-
āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ°āĻŋāĻ˛āĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§
-
āĻāĻāĻāĻŋ āĻ°āĻŋāĻ˛āĻŋāĻ āĻļāĻžāĻāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§
-
āĻŦāĻžāĻāĻĢāĻŋāĻā§āĻ¸ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž:
- āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻĄ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ Git āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛āĨ¤ āĻĒā§āĻ¸ā§āĻāĻāĻŋ āĻāĻžāĻ¨ā§āĻĄāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§
https://gitlab.com/anton_patsev/automation-maven-hotfix . - āĻāĻŋāĻŽāĻ¸āĻŋāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻāĻā§āĻ¨ā§āĻāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ Teamcity āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻāĻā§āĻ¨ā§āĻ āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
Docker-āĻ°āĻāĻ¨āĻž - āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŋāĻŽāĻ¸āĻŋāĻāĻŋ āĻāĻā§āĻ¨ā§āĻ, java, maven, git āĻāĻ¨ā§āĻ¸āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻāĻŋāĻŽāĻ¸āĻŋāĻāĻŋāĻ¤ā§ "āĻ āĻā§āĻŽā§āĻļāĻ¨ āĻŽāĻžāĻā§āĻ¨ āĻšāĻāĻĢāĻŋāĻā§āĻ¸" āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¸ā§āĻāĻžāĻ¨ā§ 4āĻāĻŋ āĻāĻžāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
-
āĻ¸āĻŋāĻāĻ āĻŦāĻŋāĻ˛ā§āĻĄ
-
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļāĻžāĻāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
-
āĻŽāĻžāĻā§āĻ¨ āĻāĻ¨āĻā§āĻ°āĻŋāĻŽā§āĻ¨ā§āĻ āĻŦāĻžāĻāĻĢāĻŋāĻā§āĻ¸ (āĻŦāĻžāĻāĻĢāĻŋāĻā§āĻ¸ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨))
-
āĻŽāĻžāĻā§āĻ¨ āĻ°āĻŋāĻ˛āĻŋāĻ (āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ°āĻŋāĻ˛āĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§)
āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ:
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸ā§āĻāĻŋāĻāĻ¸
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻŦāĻžāĻā§āĻ¸āĻāĻŋ āĻā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ "āĻā§āĻ˛āĻŋāĻ¨ āĻŦāĻŋāĻ˛ā§āĻĄ: āĻŦāĻŋāĻ˛ā§āĻĄā§āĻ° āĻāĻā§ āĻā§āĻāĻāĻāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻāĻ˛ āĻŽā§āĻā§āĻ¨", āĻāĻžāĻ°āĻŖ āĻāĻ āĻā§āĻāĻŦāĻā§āĻ¸ āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻŽāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒā§āĻ¯āĻŧā§āĻāĻŋāĨ¤
āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻāĻ VCS āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋāĨ¤ VCS āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ˛āĻžāĻ˛ āĻŦā§āĻ¤ā§āĻ¤āĻžāĻāĻžāĻ° āĻšāĻ¯āĻŧ.
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻŋāĻ¸āĻŋāĻāĻ¸āĻā§āĻ˛āĻŋ HTTPS āĻ¸ā§āĻāĻŋāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻāĻŋāĻ¤āĻ°ā§ āĻļāĻžāĻāĻž āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨: āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻ°āĻžāĻā§āĻ āĻāĻŦāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ¯āĻžāĻ āĻĻā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤:
+:refs/heads/*
+:refs/tags/*
4āĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
- BRANCH_FOR_INCREMENT
- TAG_FROM_VERSION
- TEAM_USER
- TEAM_USER_EMAIL
BRANCH_FOR_INCREMENT āĻāĻŦāĻ TAG_FROM_VERSION-āĻāĻ° āĻŽāĻžāĻ¨ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻžāĻ˛āĻŋ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻā§ āĻāĻĒāĻ˛ā§āĻĄ/āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ CI āĻŦāĻŋāĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻ¤ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻžāĻā§, CI āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻžāĻĄāĻŧāĻž, āĻŦāĻŋāĻ˛ā§āĻĄ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻŦāĻŋāĻāĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻ¨ā§āĻ¯ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŽāĻžāĻā§āĻ¨ āĻŽā§āĻā§āĻ¤āĻŋ
āĻ¸āĻŋāĻāĻ āĻŦāĻŋāĻ˛ā§āĻĄ**āĨ¤
āĻāĻāĻāĻŋ āĻāĻžāĻā§ āĻ¸āĻŋāĻāĻ āĻŦāĻŋāĻ˛ā§āĻĄ āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ āĻ§āĻžāĻĒ āĻāĻŽāĻāĻŋāĻāĻ¨ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž
āĻŽāĻžāĻā§āĻ¨ āĻŽā§āĻā§āĻ¤āĻŋ
āĻāĻāĻāĻŋ āĻāĻžāĻā§ āĻŽāĻžāĻā§āĻ¨ āĻŽā§āĻā§āĻ¤āĻŋ 2āĻāĻŋ āĻ§āĻžāĻĒāĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻ§āĻžāĻĒ āĻšāĻ˛ āĻ¯ā§ āĻŦā§āĻ°āĻžāĻā§āĻ āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻŽāĻžāĻ˛āĻŋāĻ. āĻ¯āĻĻāĻŋ āĻŦā§āĻ°āĻžāĻā§āĻ āĻ¨āĻž āĻšāĻ¯āĻŧ āĻŽāĻžāĻ˛āĻŋāĻ, āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻžāĻ¸ā§āĻ āĻĒāĻĄāĻŧā§āĨ¤
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 āĻļāĻŦā§āĻĻāĻāĻŋ āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĻ¨āĻŋ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ
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
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ§āĻžāĻĒāĻāĻŋ āĻāĻāĻāĻāĻŋāĻāĻŋāĻĒāĻŋāĻāĻ¸ āĻĨā§āĻā§ āĻāĻŋāĻāĻāĻāĻŋāĻ¤ā§ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻ¸āĻāĻ¯ā§āĻā§ āĻ¸āĻāĻ¯ā§āĻ āĻ¸ā§āĻāĻŋāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĨ¤
# ĐĐ´ĐĩŅŅ ĐŋĐžĐģŅŅĐ°ĐĩĐŧ 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
āĻŽāĻžāĻā§āĻ¨ āĻāĻ¨āĻā§āĻ°āĻŋāĻŽā§āĻ¨ā§āĻ āĻŦāĻžāĻāĻĢāĻŋāĻā§āĻ¸
āĻāĻžāĻ¸ā§āĻāĻāĻŋ 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']"
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ Maven āĻ§āĻžāĻĒāĻāĻŋ pom.xml āĻĢāĻžāĻāĻ˛ā§ āĻŦāĻžāĻāĻĢāĻŋāĻā§āĻ¸ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻā§āĨ¤
āĻā§āĻ˛: āĻŽāĻžāĻā§āĻ¨ā§āĻ° āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ āĻ˛āĻžāĻāĻ¨ā§ āĻāĻā§
build-helper:parse-version versions:set -DnewVersion=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion} versions:commit
āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻ§āĻžāĻĒ āĻšāĻ˛ āĻāĻŋāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸ āĻ¤āĻĨā§āĻ¯ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻž:
echo 'cat pom.xml'
cat pom.xml
echo 'git status'
git status
echo 'git remote -v'
git remote -v
echo 'git branch'
git branch
āĻāĻ¤ā§āĻ°ā§āĻĨ āĻ§āĻžāĻĒāĻāĻŋ āĻāĻāĻāĻāĻŋāĻāĻŋāĻĒāĻŋāĻāĻ¸ āĻĨā§āĻā§ āĻāĻŋāĻāĻāĻāĻŋāĻ¤ā§ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻ¸āĻāĻ¯ā§āĻā§ āĻ¸āĻāĻ¯ā§āĻ āĻ¸ā§āĻāĻŋāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĨ¤
āĻāĻŦāĻ %BRANCH_FOR_INCREMENT% āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž Teamcity-āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻļāĻžāĻāĻžāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻļ āĻāĻ°ā§
# ĐĐ´ĐĩŅŅ ĐŋĐžĐģŅŅĐ°ĐĩĐŧ 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 āĻ āĻā§āĻˇāĻ° āĻāĻžāĻĄāĻŧāĻžāĨ¤ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻ, āĻāĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§, āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻļā§āĻ°ā§āĻ¤ā§ āĻ āĻā§āĻˇāĻ° 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 āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻŽā§āĻ¯āĻžāĻā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¸āĻš āĻ˛āĻā§āĻˇā§āĻ¯.
āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻā§āĻ˛:
-Dtag=%TAG_FROM_VERSION% scm:tag
āĻāĻ¤ā§āĻ¸: www.habr.com