āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĢ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ°ā§‡ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚: āĻ•ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡?

āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĢ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ°ā§‡ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚: āĻ•ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡?

werf Kubernetes-āĻ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ¤āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ“āĻĒā§‡āĻ¨ āĻ¸ā§‹āĻ°ā§āĻ¸ GitOps CLI āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋāĨ¤ āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļ v1.1 āĻ‡āĻŽā§‡āĻœ āĻ•āĻžāĻ˛ā§‡āĻ•ā§āĻŸāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡: āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ›āĻŦāĻŋ āĻŸā§āĻ¯āĻžāĻ— āĻ•āĻ°āĻž āĻŦāĻž āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚. āĻāĻ–āĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤, āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĢā§‡āĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ¸ā§āĻ•āĻŋāĻŽāĻŸāĻŋ āĻ—āĻŋāĻŸ āĻŸā§āĻ¯āĻžāĻ—, āĻ—āĻŋāĻŸ āĻŦā§āĻ°āĻžāĻžā§āĻš āĻŦāĻž āĻ—āĻŋāĻŸ āĻ•āĻŽāĻŋāĻŸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻŸā§āĻ¯āĻžāĻ— āĻ•āĻ°āĻž āĻœāĻĄāĻŧāĻŋāĻ¤āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻ•āĻŋāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻ…āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ—ā§āĻ˛āĻŋ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¨āĻ¤ā§āĻ¨ āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ•ā§ŒāĻļāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ āĻāĻŸāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻŦāĻ‚ āĻ•ā§‡āĻ¨ āĻāĻŸāĻŋ āĻāĻ¤ āĻ­āĻžāĻ˛ āĻ•āĻžāĻŸ āĻ…āĻ§ā§€āĻ¨ā§‡ āĻ†āĻ›ā§‡.

āĻāĻ•āĻŸāĻŋ āĻ—āĻŋāĻŸ āĻ°āĻŋāĻĒā§‹āĻœāĻŋāĻŸāĻ°āĻŋ āĻĨā§‡āĻ•ā§‡ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻ°ā§‹āĻ˛ āĻ†āĻ‰āĻŸ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻ˜āĻŸā§‡ āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ…āĻ¨ā§‡āĻ• āĻ•āĻŽ āĻŦāĻž āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ¤ā§‡ āĻŦāĻŋāĻ­āĻ•ā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻŽā§āĻ•ā§āĻ¤āĻŋ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ­āĻžāĻŦā§‡ āĻ˜āĻŸāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡: āĻāĻ• āĻŦāĻž āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻāĻ•āĻŦāĻžāĻ°ā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻŦāĻžāĻ•āĻŋāĻ—ā§āĻ˛āĻŋ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ•ā§‹āĻ¨āĻ“ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ•āĻžāĻœ āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ•ā§‹āĻĄ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻœā§‡āĻ•ā§āĻŸ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ•ā§‹āĻŖ āĻĨā§‡āĻ•ā§‡, āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•āĻ• āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡ āĻ°āĻžāĻ–āĻž āĻ†āĻ°āĻ“ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ•āĨ¤

āĻāĻŽāĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻ–āĻ¨ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ¤ā§āĻ¯āĻ‡ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻ¤āĻžāĻ°āĻž āĻĒā§ƒāĻĨāĻ• āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡ āĻĒā§ƒāĻĨāĻ• CI/CD āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤

āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻŦāĻžāĻ¸ā§āĻ¤āĻŦā§‡, āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ•ā§‡ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡ āĻŦāĻŋāĻ­āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡, āĻ¤āĻŦā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž... āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻ“āĻ­āĻžāĻ°āĻ•āĻŋāĻ˛āĨ¤ āĻāĻ‡ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻŸāĻŋāĻ‡ āĻ†āĻ°āĻ“ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻŦā§‡: āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻāĻŦāĻ‚ CI/CD-āĻ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

Git āĻļāĻžāĻ–āĻž āĻāĻŦāĻ‚ Git āĻŸā§āĻ¯āĻžāĻ— āĻĻā§āĻŦāĻžāĻ°āĻž āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚

āĻ§āĻ°āĻž āĻ¯āĻžāĻ• āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ•ā§ŒāĻļāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ - āĻŸā§āĻ¯āĻžāĻ—-āĻŦāĻž-āĻļāĻžāĻ–āĻž. āĻ—āĻŋāĻŸ āĻļāĻžāĻ–āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯, āĻļāĻžāĻ–āĻžāĻ° āĻ¨āĻžāĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻšāĻŋāĻ¤ā§āĻ°āĻ—ā§āĻ˛āĻŋ āĻŸā§āĻ¯āĻžāĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻ• āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻŋ āĻļāĻžāĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§‡āĻ‡ āĻļāĻžāĻ–āĻžāĻ° āĻ¨āĻžāĻŽā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤ āĻšāĻŋāĻ¤ā§āĻ° āĻĨāĻžāĻ•ā§‡ā§ˇ āĻ—āĻŋāĻŸ āĻŸā§āĻ¯āĻžāĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻŸā§āĻ¯āĻžāĻ—ā§‡āĻ° āĻ¨āĻžāĻŽ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻ›āĻŦāĻŋ āĻŸā§āĻ¯āĻžāĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ—āĻŋāĻŸ āĻŸā§āĻ¯āĻžāĻ— āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ - āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ - āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĄāĻ•āĻžāĻ° āĻŸā§āĻ¯āĻžāĻ— āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻŦā§‡ āĻĄāĻ•āĻžāĻ° āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯:

  • myregistry.org/myproject/frontend:v1.1.10
  • myregistry.org/myproject/myservice1:v1.1.10
  • myregistry.org/myproject/myservice2:v1.1.10
  • myregistry.org/myproject/myservice3:v1.1.10
  • myregistry.org/myproject/myservice4:v1.1.10
  • myregistry.org/myproject/myservice5:v1.1.10
  • myregistry.org/myproject/database:v1.1.10

āĻāĻ‡ āĻ¨āĻ¤ā§āĻ¨ āĻ›āĻŦāĻŋāĻ° āĻ¨āĻžāĻŽāĻ—ā§āĻ˛ā§‹ āĻšā§‡āĻ˛āĻŽ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻļā§āĻ°ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ werf deploy āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ° āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ image Kubernetes āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸-āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻ‡āĻŽā§‡āĻœ āĻ¨āĻžāĻŽā§‡āĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ°āĻŋāĻ¸ā§āĻŸāĻžāĻ°ā§āĻŸ āĻ•āĻ°ā§‡āĨ¤

āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž: āĻ¯ā§‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻĒā§āĻ°āĻ•ā§ƒāĻ¤āĻĒāĻ•ā§āĻˇā§‡, āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻ°ā§‹āĻ˛āĻ†āĻ‰āĻŸ (āĻ—āĻŋāĻŸ āĻŸā§āĻ¯āĻžāĻ—) āĻĨā§‡āĻ•ā§‡ āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻ¤āĻŦā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ° āĻĄāĻ•āĻžāĻ° āĻŸā§āĻ¯āĻžāĻ—, āĻāĻŸāĻŋ āĻ˜āĻŸā§‡ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻāĻ‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€, āĻ•āĻŋāĻ›ā§ āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ¸āĻŽā§āĻ­āĻŦāĨ¤ āĻ¯āĻĻāĻŋāĻ“ āĻāĻ‡ āĻĒā§āĻ¨āĻƒāĻ¸ā§‚āĻšāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻ•ā§‹āĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ•āĻžāĻ°āĻŖ āĻ›āĻŋāĻ˛ āĻ¨āĻžāĨ¤

āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ¸ā§āĻ•āĻŋāĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ—āĻŋāĻŸ āĻ°āĻŋāĻĒā§‹āĻœāĻŋāĻŸāĻ°āĻŋ āĻŦā§‡āĻĄāĻŧ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻāĻŦāĻ‚ āĻāĻ‡ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡āĻ° āĻ°ā§‹āĻ˛āĻ†āĻ‰āĻŸ āĻ¸āĻ‚āĻ—āĻ āĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĻā§‡āĻ–āĻž āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡, āĻāĻ‡ āĻœāĻžāĻ¤ā§€āĻ¯āĻŧ āĻ¸ā§āĻ•āĻŋāĻŽ āĻ“āĻ­āĻžāĻ°āĻ˛ā§‹āĻĄ āĻāĻŦāĻ‚ āĻœāĻŸāĻŋāĻ˛ āĻšāĻ¤ā§‡ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡ āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻĄāĻ•āĻžāĻ° āĻŸā§āĻ¯āĻžāĻ— āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ­āĻžāĻ˛ āĻ¯āĻžāĻ¤ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻ…āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ†āĻ°āĻŽā§āĻ­ āĻ¨āĻž āĻšāĻ¯āĻŧāĨ¤

Git āĻ•āĻŽāĻŋāĻŸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚

werf āĻāĻ° āĻ—āĻŋāĻŸ āĻ•āĻŽāĻŋāĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻāĻ•āĻŸāĻŋ āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ•ā§ŒāĻļāĻ˛āĻ“ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ—āĻŋāĻŸ-āĻ•āĻŽāĻŋāĻŸ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ—āĻŋāĻŸ āĻ°āĻŋāĻĒā§‹āĻœāĻŋāĻŸāĻ°āĻŋāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻļāĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻžāĻ°ā§€ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ—āĻŋāĻŸ āĻ°āĻŋāĻĒā§‹āĻœāĻŋāĻŸāĻ°āĻŋāĻ¤ā§‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ‡ āĻĄāĻ•āĻžāĻ° āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻ¤ā§‡ āĻ›āĻŦāĻŋ āĻŸā§āĻ¯āĻžāĻ— āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§ŒāĻ•ā§āĻ¤āĻŋāĻ• āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻ¯āĻŧāĨ¤

āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻ—āĻŋāĻŸ āĻ•āĻŽāĻŋāĻŸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŸā§āĻ¯āĻžāĻ— āĻ•āĻ°āĻžāĻ° āĻ—āĻŋāĻŸ āĻļāĻžāĻ–āĻž āĻŦāĻž āĻ—āĻŋāĻŸ āĻŸā§āĻ¯āĻžāĻ— āĻĻā§āĻŦāĻžāĻ°āĻž āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻ‡ āĻ…āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

  • āĻāĻ•āĻŸāĻŋ āĻ–āĻžāĻ˛āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯āĻž āĻ•ā§‹āĻ¨ā§‹ āĻĢāĻžāĻ‡āĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻ›āĻŦāĻŋāĻ° āĻĄāĻ•āĻžāĻ° āĻŸā§āĻ¯āĻžāĻ— āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤
  • āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻ°ā§āĻœ āĻ•āĻŽāĻŋāĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯āĻž āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻ›āĻŦāĻŋāĻ° āĻĄāĻ•āĻžāĻ° āĻŸā§āĻ¯āĻžāĻ— āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤
  • āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯āĻž āĻ—āĻŋāĻŸā§‡ āĻ¸ā§‡āĻ‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻ›āĻŦāĻŋāĻ¤ā§‡ āĻ†āĻŽāĻĻāĻžāĻ¨āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ āĻāĻŦāĻ‚ āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋāĻ° āĻĄāĻ•āĻžāĻ° āĻŸā§āĻ¯āĻžāĻ— āĻ†āĻŦāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤

Git āĻļāĻžāĻ–āĻžāĻ° āĻ¨āĻžāĻŽ āĻŸā§āĻ¯āĻžāĻ— āĻ•āĻ°āĻž āĻšāĻŋāĻ¤ā§āĻ° āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¨āĻž

āĻ—āĻŋāĻŸ āĻļāĻžāĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ•ā§ŒāĻļāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ†āĻ›ā§‡āĨ¤

āĻļāĻžāĻ–āĻžāĻ° āĻ¨āĻžāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŸā§āĻ¯āĻžāĻ— āĻ•āĻ°āĻž āĻ¤āĻ¤āĻ•ā§āĻˇāĻŖ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¯āĻ¤āĻ•ā§āĻˇāĻŖ āĻ¨āĻž āĻ¸ā§‡āĻ‡ āĻļāĻžāĻ–āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻ•āĻžāĻ˛āĻžāĻ¨ā§āĻ•ā§āĻ°āĻŽāĻŋāĻ• āĻ•ā§āĻ°āĻŽā§‡ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

āĻ¯āĻĻāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸ā§āĻ•āĻŋāĻŽā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻļāĻžāĻ–āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ werf āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¸āĻš āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻĄāĻ•āĻžāĻ° āĻŸā§āĻ¯āĻžāĻ— āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛āĻŋāĻ–āĻŦā§‡āĨ¤ āĻāĻ–āĻ¨ āĻĨā§‡āĻ•ā§‡ āĻāĻ‡ āĻŸā§āĻ¯āĻžāĻ— āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ—ā§āĻ˛āĻŋ āĻĒāĻĄ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻŸā§‡āĻ¨ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻā§āĻāĻ•āĻŋ āĻšāĻžāĻ˛āĻžāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ CI āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻšāĻžāĻ°āĻžāĻŦā§‡ āĻāĻŦāĻ‚ āĻĄāĻŋāĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ‡āĻœ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻŦā§‡ā§ˇ

āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ…āĻ˛ā§āĻĒ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻļāĻžāĻ–āĻžāĻ¯āĻŧ āĻĒāĻ°āĻĒāĻ° āĻ§āĻžāĻ•ā§āĻ•āĻž āĻĻāĻŋāĻ¯āĻŧā§‡, āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨āĻŸāĻŋāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻĒāĻ°ā§‡ āĻ¸āĻ‚āĻ•āĻ˛āĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡: āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖāĻŸāĻŋ āĻ—āĻŋāĻŸ āĻļāĻžāĻ–āĻž āĻŸā§āĻ¯āĻžāĻ— āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¨āĻ¤ā§āĻ¨āĻŸāĻŋāĻ•ā§‡ āĻ“āĻ­āĻžāĻ°āĻ°āĻžāĻ‡āĻŸ āĻ•āĻ°āĻŦā§‡āĨ¤ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ CI/CD āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ—āĻŋāĻŸāĻ˛ā§āĻ¯āĻžāĻŦ CI-āĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻŸāĻŋāĻ° āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ•āĻŽāĻŋāĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ)āĨ¤ āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŸāĻŋāĻ•ā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡ āĻ¨āĻž āĻāĻŦāĻ‚ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻŽā§ŒāĻ˛āĻŋāĻ• āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§‹āĻ§ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ°āĻ“ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ•āĻŋ?

āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ•āĻŋ - āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ›āĻŦāĻŋ āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚āĨ¤

āĻĄāĻ•āĻžāĻ° āĻŸā§āĻ¯āĻžāĻ— āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡, āĻāĻŸāĻŋ āĻ—āĻŋāĻŸ āĻ†āĻĻāĻŋāĻŽ (āĻ—āĻŋāĻŸ āĻļāĻžāĻ–āĻž, āĻ—āĻŋāĻŸ āĻŸā§āĻ¯āĻžāĻ—...) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻšā§‡āĻ•āĻ¸āĻžāĻŽ āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤:

  • āĻ›āĻŦāĻŋāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§. āĻ‡āĻŽā§‡āĻœ āĻ†āĻ‡āĻĄāĻŋ āĻŸā§āĻ¯āĻžāĻ— āĻāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻ¨āĻž āĻšāĻ˛ā§‡ āĻāĻ‡ āĻļāĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻžāĻ°ā§€ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻŦā§‡ āĻ¨āĻž;
  • āĻ—āĻŋāĻŸā§‡ āĻāĻ‡ āĻ›āĻŦāĻŋāĻŸāĻŋ āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸. āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ—āĻŋāĻŸ āĻļāĻžāĻ–āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ›āĻŦāĻŋ āĻāĻŦāĻ‚ werf āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸ā§‡āĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ†āĻ‡āĻĄāĻŋ āĻŸā§āĻ¯āĻžāĻ— āĻĨāĻžāĻ•āĻŦā§‡āĨ¤

āĻ¯ā§‡āĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻļāĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻžāĻ°ā§€ āĻŸā§āĻ¯āĻžāĻ— āĻ¤āĻĨāĻžāĻ•āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ›āĻŦāĻŋ āĻŽāĻžā§āĻš āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°.

āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻšāĻŋāĻ¤ā§āĻ° āĻ§āĻžāĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ—āĻ āĻŋāĻ¤: from, before-install, git-archive, install, imports-after-install, before-setup... git-latest-patch āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻŋ āĻļāĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻžāĻ°ā§€ āĻĨāĻžāĻ•ā§‡ āĻ¯āĻž āĻāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻ•āĻ°ā§‡ - āĻŽāĻžā§āĻš āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ° (āĻŽāĻžā§āĻš āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°).

āĻāĻ‡ āĻ§āĻžāĻĒāĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ—āĻ āĻŋāĻ¤ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋ āĻāĻ‡ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡āĻ° āĻ¸ā§‡āĻŸā§‡āĻ° āĻ¤āĻĨāĻžāĻ•āĻĨāĻŋāĻ¤ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŸā§āĻ¯āĻžāĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ - āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°, - āĻ¯āĻž āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖā§€āĻ•āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§ˇ

āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ›āĻŦāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ werf.yaml āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ° āĻĨāĻžāĻ•āĻŦā§‡ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€, āĻāĻ•āĻŸāĻŋ āĻĄāĻ•āĻžāĻ° āĻŸā§āĻ¯āĻžāĻ—āĨ¤

āĻŽāĻžā§āĻš āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ° āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡:

  • āĻ–āĻžāĻ˛āĻŋ āĻ—āĻŋāĻŸ āĻ•āĻŽāĻŋāĻŸ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§‹āĻ§ā§€.
  • āĻ—āĻŋāĻŸ āĻ•āĻŽāĻŋāĻŸ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§‹āĻ§ā§€ āĻ¯āĻž āĻ‡āĻŽā§‡āĻœā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒā§āĻ°āĻžāĻ¸āĻ™ā§āĻ—āĻŋāĻ• āĻ¨āĻ¯āĻŧ āĻāĻŽāĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĨ¤
  • āĻāĻ•āĻŸāĻŋ āĻļāĻžāĻ–āĻžāĻ° āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻ—āĻŋāĻŸ āĻ•āĻŽāĻŋāĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ˛ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖāĻŸāĻŋ āĻ“āĻ­āĻžāĻ°āĻšā§‹āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸ā§ƒāĻˇā§āĻŸāĻŋ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤

āĻāĻŸāĻŋ āĻāĻ–āĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ•ā§ŒāĻļāĻ˛ āĻāĻŦāĻ‚ āĻ¸āĻŽāĻ¸ā§āĻ¤ CI āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ werf-āĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĨ¤

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻŦāĻ‚ werf āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ

āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻāĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ werf publish: --tag-by-stages-signature=true|false

āĻāĻ•āĻŸāĻŋ CI āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡, āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ•ā§ŒāĻļāĻ˛ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ werf ci-env. āĻĒā§‚āĻ°ā§āĻŦā§‡, āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ werf ci-env --tagging-strategy=tag-or-branch. āĻāĻ–āĻ¨, āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°ā§āĻ¨ werf ci-env --tagging-strategy=stages-signature āĻ…āĻĨāĻŦāĻž āĻāĻ‡ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž, werf āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ•ā§ŒāĻļāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦā§‡ stages-signature. āĻŸā§€āĻŽ werf ci-env āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻĒāĻ¤āĻžāĻ•āĻž āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻŦā§‡ werf build-and-publish (āĻŦāĻž werf publish), āĻ¤āĻžāĻ‡ āĻāĻ‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨āĻ“ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¨ā§‡āĻ‡āĨ¤

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ•āĻŽāĻžāĻ¨ā§āĻĄ:

werf publish --stages-storage :local --images-repo registry.hello.com/web/core/system --tag-by-stages-signature

...āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ›āĻŦāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

  • registry.hello.com/web/core/system/backend:4ef339f84ca22247f01fb335bb19f46c4434014d8daa3d5d6f0e386d
  • registry.hello.com/web/core/system/frontend:f44206457e0a4c8a54655543f749799d10a9fe945896dab1c16996c6

āĻāĻŸāĻž āĻšāĻ˛ 4ef339f84ca22247f01fb335bb19f46c4434014d8daa3d5d6f0e386d āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻ§āĻžāĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ° backendāĻāĻŦāĻ‚ f44206457e0a4c8a54655543f749799d10a9fe945896dab1c16996c6 - āĻšāĻŋāĻ¤ā§āĻ° āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ° frontend.

āĻŦāĻŋāĻļā§‡āĻˇ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ werf_container_image и werf_container_env āĻšā§‡āĻ˛āĻŽ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ•āĻŋāĻ›ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻžāĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻ¨ā§‡āĻ‡: āĻāĻ‡ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ¸āĻ āĻŋāĻ• āĻ›āĻŦāĻŋāĻ° āĻ¨āĻžāĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦā§‡āĨ¤

āĻāĻ•āĻŸāĻŋ CI āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ:

type multiwerf && source <(multiwerf use 1.1 beta)
type werf && source <(werf ci-env gitlab)
werf build-and-publish|deploy

āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ†āĻ°āĻ“ āĻ¤āĻĨā§āĻ¯ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§:

āĻŽā§‹āĻŸā§‡

  • āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ werf publish --tag-by-stages-signature=true|false.
  • āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻŽāĻžāĻ¨ werf ci-env --tagging-strategy=stages-signature|tag-or-branch (āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¨āĻž āĻšāĻ˛ā§‡, āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻšāĻŦā§‡ stages-signature).
  • āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ†āĻ—ā§‡ āĻ—āĻŋāĻŸ āĻ•āĻŽāĻŋāĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ¨ (WERF_TAG_GIT_COMMIT āĻŦāĻž āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ werf publish --tag-git-commit COMMIT), āĻ¤āĻžāĻ°āĻĒāĻ° āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ•ā§ŒāĻļāĻ˛ā§‡ āĻ¸ā§āĻ¯ā§āĻ‡āĻš āĻ•āĻ°āĻ¤ā§‡ āĻ­ā§āĻ˛āĻŦā§‡āĻ¨ āĻ¨āĻž āĻ§āĻžāĻĒ-āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ°.
  • āĻ…āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ¸ā§āĻ•āĻŋāĻŽā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻ­āĻžāĻ˛āĨ¤
  • werf 1.1 āĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ¸ā§āĻ•āĻŋāĻŽā§‡ āĻ¸ā§āĻ¯ā§āĻ‡āĻš āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻŸā§āĻ¯āĻžāĻ—-āĻŦāĻž-āĻļāĻžāĻ–āĻž āĻāĻ–āĻ¨āĻ“ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤āĨ¤

āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻŸā§āĻ¯āĻžāĻ—āĻŋāĻ‚ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻ•āĻ­āĻžāĻ° āĻ•āĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡:

  • āĻ–āĻžāĻ˛āĻŋ āĻ—āĻŋāĻŸ āĻ•āĻŽāĻŋāĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻ•āĻžāĻ° āĻŸā§āĻ¯āĻžāĻ— āĻ¨āĻžāĻŽ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§‹āĻ§āĨ¤
  • āĻ—āĻŋāĻŸ-āĻ āĻĄāĻ•āĻžāĻ° āĻŸā§āĻ¯āĻžāĻ— āĻ¨āĻžāĻŽā§‡āĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•āĻ¤āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻ¯ā§‡ āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ…āĻĒā§āĻ°āĻžāĻ¸āĻ™ā§āĻ—āĻŋāĻ• āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĨ¤
  • āĻ—āĻŋāĻŸ āĻļāĻžāĻ–āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻ—āĻŋāĻŸ āĻ•āĻŽāĻŋāĻŸāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ˛ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖāĻŸāĻŋ āĻ“āĻ­āĻžāĻ°āĻšā§‹āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸ā§ƒāĻˇā§āĻŸāĻŋ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤

āĻāĻŸāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‹! āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĻā§‡āĻ–āĻž āĻ•āĻ°āĻ¤ā§‡ āĻ­ā§āĻ˛āĻŦā§‡āĻ¨ āĻ¨āĻž GitHubāĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻŦāĻž āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡, āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛āĻžāĻ¸ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨, āĻāĻ•āĻŸāĻŋ āĻĒāĻŋāĻ†āĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ āĻŦāĻž āĻ•ā§‡āĻŦāĻ˛ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĻā§‡āĻ–ā§āĻ¨ā§ˇ

āĻĻā§āĻ°āĻˇā§āĻŸāĻŦā§āĻ¯

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦā§āĻ˛āĻ—ā§‡āĻ“ āĻĒāĻĄāĻŧā§āĻ¨:

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨