Версионирование и сборка

ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ контроля вСрсий ΠΈ стандартизированного процСсса сборки.
Lino ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Semantic Versioning (SemVer) для управлСния вСрсиями ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСрвиса ΠΈ прСдоставляСт ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Docker-ΠΎΠ±Ρ€Π°Π·ΠΎΠ² с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии сСрвиса.

ВСрсионированиС сСрвисов

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвис Π² Lino ΠΈΠΌΠ΅Π΅Ρ‚ нСзависимоС вСрсионированиС, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠΌ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ с Ρ€Π°Π·Π½ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Π±Π΅Π· нСобходимости глобальной синхронизации.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ SemVer

MAJOR.MINOR.PATCH
  • MAJOR β†’ нСсовмСстимыС измСнСния (breaking changes).
  • MINOR β†’ Π½ΠΎΠ²Ρ‹Π΅ совмСстимыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
  • PATCH β†’ исправлСния ошибок ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:
1.0.0 β†’ пСрвая ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ вСрсия.
1.1.0 β†’ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ эндпоинты Π±Π΅Π· Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ совмСстимости.
2.0.0 β†’ измСнСния, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ обновлСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².

Команда lino version

CLI прСдоставляСт Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ увСличСния вСрсии:

lino version bump

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ мастСр ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ увСличСния (major, minor, patch) ΠΈ автоматичСски ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сСрвиса с Π½ΠΎΠ²ΠΎΠΉ вСрсиСй.

КаТдоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ обновляСт манифСст вСрсии сСрвиса, обСспСчивая:

  • Π§Π΅Ρ‚ΠΊΠΎΠ΅ отслСТиваниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
  • Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ с ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ Ρ€Π΅Π»ΠΈΠ·ΠΎΠ².
  • БоотвСтствиС CI/CD ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°ΠΌ.

Π‘Π±ΠΎΡ€ΠΊΠ° Docker-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²

Lino автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Docker-ΠΎΠ±Ρ€Π°Π·Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ вСрсии сСрвиса ΠΈΠ»ΠΈ Π²Π΅Π±-прилоТСния, устраняя Ρ€ΡƒΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Шаблон имСнования:

имя-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°/services/имя-сСрвиса : major.minor.patch

ΠžΠ±Ρ€Π°Π·Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² любом рССстрС:

  • Docker Hub
  • GitHub Container Registry
  • AWS ECR
  • Azure Container Registry
  • ΠΈΠ»ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ совмСстимый Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Команда lino build

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Docker-ΠΎΠ±Ρ€Π°Π·Ρ‹, достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

lino build

Π§Ρ‚ΠΎ происходит Π² этом процСссС:
1. ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ΄ сСрвиса ΠΈ/ΠΈΠ»ΠΈ Π²Π΅Π±-прилоТСния.
2. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ настройки (строки ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, сСкрСты, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния).
3. БоздаСтся Docker-ΠΎΠ±Ρ€Π°Π· Π½Π° основС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии SemVer.
4. ΠžΠ±Ρ€Π°Π· ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ стандартизированноС имя ΠΈ Ρ‚Π΅Π³.

Π­Ρ‚ΠΎΡ‚ процСсс обСспСчиваСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ воспроизводимыС сборки, сниТая количСство ошибок Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-срСдах ΠΈ ускоряя Π΄Π΅ΠΏΠ»ΠΎΠΉ Π² CI/CD ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°Ρ….

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Lino сочСтаСт нСзависимоС вСрсионированиС ΠΏΠΎ сСрвисам с Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ процСссом сборки, обСспСчивая ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅Π»ΠΈΠ·Π°ΠΌΠΈ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ распрСдСлСниС Π² любой срСдС.

Произошла необработанная ошибка. Обновить πŸ—™