Π Π΅Π»ΠΈΠ· werf 1.1: подобрСния Π² сборщика днСс ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° Π±ΡŠΠ΄Π΅Ρ‰Π΅Ρ‚ΠΎ

Π Π΅Π»ΠΈΠ· werf 1.1: подобрСния Π² сборщика днСс ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° Π±ΡŠΠ΄Π΅Ρ‰Π΅Ρ‚ΠΎ

werf β€” Π½Π°ΡˆΠΈΡΡ‚ GitOps CLI инструмСнт с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ ΠΈ доставка Π½Π° прилоТСния Π² Kubernetes. ΠšΠ°ΠΊΡ‚ΠΎ ΠΎΠ±Π΅Ρ‰Π°Ρ…ΠΌΠ΅, ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅Ρ‚ΠΎ Π½Π° вСрсия v1.0 ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° добавянСто Π½Π° Π½ΠΎΠ²ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π² werf ΠΈ ΠΏΡ€Π΅Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈ. Π‘Π΅Π³Π° с радост прСдставямС Ρ€Π΅Π»ΠΈΠ·Π° v1.1, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° ΡΡ‚ΡŠΠΏΠΊΠ° Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ ΠΈ основа Π·Π° Π±ΡŠΠ΄Π΅Ρ‰Π΅Ρ‚ΠΎ сборщика werf. ВСрсията Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π² ΠΊΠ°Π½Π°Π» 1.1 ea.

ΠžΡΠ½ΠΎΠ²Π°Ρ‚Π° Π½Π° Ρ€Π΅Π»ΠΈΠ·Π° Π΅ Π½ΠΎΠ²Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° Π΅Ρ‚Π°ΠΏΠΈ ΠΈ оптимизация Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π΄Π²Π°Ρ‚Π° сборника (Π·Π° Stapel ΠΈ Dockerfile). Новата Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ отваря Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° рСализация Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ сборки ΠΎΡ‚ няколко хоста ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈ сборки Π½Π° Π΅Π΄ΠΈΠ½ хост.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡΡ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° ΠΈΠ·Π»ΠΈΡˆΠ½ΠΈΡ‚Π΅ изчислСния Π² Π΅Ρ‚Π°ΠΏΠ° Π½Π° изчислСниС Π½Π° сигнатуритС Π½Π° Π΅Ρ‚Π°ΠΏΠΈΡ‚Π΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈΡ‚Π΅ Π·Π° изчислСниС Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΈ суми Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ. Π’Π°Π·ΠΈ оптимизация намалява срСдното Π²Ρ€Π΅ΠΌΠ΅ Π½Π° сборки Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° werf. И холоститС сборки, ΠΊΠΎΠ³Π°Ρ‚ΠΎ всички Π΅Ρ‚Π°ΠΏΠΈ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ Π² кСша stages-storage, сСга наистина са Π±ΡŠΡ€Π·ΠΈ. Π’ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΡ‚ΠΎ стартиранС Π½Π° сборката Ρ‰Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ 1 сСкунда! Π’ΠΎΠ²Π° ΡΡŠΡ‰ΠΎ Π²Π°ΠΆΠΈ ΠΈ Π·Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΈΡ‚Π΅ ΠΏΠΎ вСрификация Π½Π° Π΅Ρ‚Π°ΠΏΠΈΡ‚Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Π΅ΠΊΠΈΠΏΠΈΡ‚Π΅ werf deploy ΠΈ werf run.

Π‘ΡŠΡ‰ΠΎ Π² Ρ‚ΠΎΠ·ΠΈ Ρ€Π΅Π»ΠΈΠ· сС появи стратСгия Π·Π° Ρ‚Π°Π³ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ ΠΏΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ β€” content-based tagging, която сСга Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈ Π΅ СдинствСно ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½Π°Ρ‚Π°.

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ нововъвСдСния Π² werf v1.1 ΠΈ Π΄Π° сподСлим ΠΏΠ»Π°Π½ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° Π±ΡŠΠ΄Π΅Ρ‰Π΅Ρ‚ΠΎ.

Какво сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² werf v1.1?

Нов Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° Π΅Ρ‚Π°ΠΏΠΈΡ‚Π΅ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° ΠΏΠΎΠ΄Π±ΠΎΡ€ Π½Π° Π΅Ρ‚Π°ΠΏΠΈ ΠΎΡ‚ кСша

Ново ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅ Π½Π° Π΅Ρ‚Π°ΠΏ. Π‘Π΅Π³Π° всяка сборка Π½Π° Π΅Ρ‚Π°ΠΏ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΎ ΠΈΠΌΠ΅ Π½Π° Π΅Ρ‚Π°ΠΏ, ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ 2 части: сигнатура (ΠΊΠ°ΠΊΡ‚ΠΎ бСшС Π² v1.0) плюс ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.

НапримСр, ΠΏΡŠΠ»Π½ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ Π½Π° ΠΎΠ±Ρ€Π°Π·Π° Π½Π° Π΅Ρ‚Π°ΠΏ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

werf-stages-storage/myproject:d2c5ad3d2c9fcd9e57b50edd9cb26c32d156165eb355318cebc3412b-1582656767835

… ΠΈΠ»ΠΈ Π² ΠΎΠ±Ρ‰ Π²ΠΈΠ΄:

werf-stages-storage/PROJECT:SIGNATURE-TIMESTAMP_MILLISEC

Π’ΡƒΠΊ:

  • SIGNATURE β€” Ρ‚ΠΎΠ²Π° Π΅ сигнатурата Π½Π° Π΅Ρ‚Π°ΠΏΠ°, която прСдставлява ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΅Ρ‚Π°ΠΏΠ° ΠΈ зависи ΠΎΡ‚ историята Π½Π° измСнСнията Π² Git, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ Ρ‚ΠΎΠ²Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅;
  • TIMESTAMP_MILLISEC β€” Ρ‚ΠΎΠ²Π° Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° ΠΎΠ±Ρ€Π°Π·Π°, ΠΊΠΎΠΉΡ‚ΠΎ сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π½ΠΎΠ² ΠΎΠ±Ρ€Π°Π·.

ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚ Π·Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° стадии ΠΎΡ‚ кСша сС основава Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Git ΠΊΠΎΠΌΠΈΡ‚ΠΈΡ‚Π΅:

  1. Werf изчислява подписа Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° стадия.
  2. Π’ stages-storage ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ няколко стадии с Ρ‚ΠΎΠ·ΠΈ подпис. Werf ΠΈΠ·Π±ΠΈΡ€Π° всички подходящи стадии с подписа.
  3. Ако Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° стадия Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½Π° с Git (git-archive, потрСбитСлска стадия с Git ΠΏΠ°Ρ‡ΠΎΠ²Π΅: инсталиранС, прСдиНастройка, настройка; ΠΈΠ»ΠΈ git-latest-patch), Ρ‚ΠΎ werf ΠΈΠ·Π±ΠΈΡ€Π° само Ρ‚Π΅Π·ΠΈ стадии, ΠΊΠΎΠΈΡ‚ΠΎ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΊΠΎΠΌΠΈΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½ΠΈΠΊ Π½Π° тСкущия ΠΊΠΎΠΌΠΈΡ‚ (Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΈΠ·Π²ΠΈΠΊΠ°Π½Π° компилацията).
  4. ΠžΡ‚ останалитС подходящи стадии сС ΠΈΠ·Π±ΠΈΡ€Π° Π΅Π΄Π½Π° – Π½Π°ΠΉ-старата ΠΏΠΎ Π΄Π°Ρ‚Π° Π½Π° създаванС.

Бтадията Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Git ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ подпис. Но werf Ρ‰Π΅ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° кСш, ΡΠ²ΡŠΡ€Π·Π°Π½ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅, Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ подписитС ΡΡŠΠ²ΠΏΠ°Π΄Π°Ρ‚.

β†’ ДокумСнтация.

Нов Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° създаванС ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° стадии Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° стадии

Ако ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π±ΠΎΡ€Π° Π½Π° стадии ΠΎΡ‚ кСша werf Π½Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈ подходяща стадия, Ρ‚ΠΎ сС ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΎΠ²Π° стадия.

Π—Π°Π±Π΅Π»Π΅ΠΆΠ΅Ρ‚Π΅, Ρ‡Π΅ няколко процСса (Π½Π° Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ хостовС) ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚ компилацията Π½Π° Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° стадия ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. Werf ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π½Π° оптимистично Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ stages-storage ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠΊΡƒ-Ρ‰ΠΎ компилирания ΠΎΠ±Ρ€Π°Π· Π² stages-storage. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½, ΠΊΠΎΠ³Π°Ρ‚ΠΎ компилацията Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° стадия Π΅ Π³ΠΎΡ‚ΠΎΠ²Π°, werf Π±Π»ΠΎΠΊΠΈΡ€Π° stages-storage ΠΈ Π·Π°ΠΏΠ°Π·Π²Π° Ρ‚Π°ΠΌ Ρ‚ΠΎΠΊΡƒ-Ρ‰ΠΎ компилирания ΠΎΠ±Ρ€Π°Π· само Π°ΠΊΠΎ Ρ‚Π°ΠΌ Π²Π΅Ρ‡Π΅ Π½Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° подходящ ΠΎΠ±Ρ€Π°Π· (ΠΏΠΎ подписа ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ – Π²ΠΈΠΆΡ‚Π΅ новия Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° стадии ΠΎΡ‚ кСша).

Π’ΠΎΠΊΡƒ-Ρ‰ΠΎ компилираният ΠΎΠ±Ρ€Π°Π· Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ Ρ‰Π΅ ΠΈΠΌΠ° ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠΎ TIMESTAMP_MILLISEC (Π²ΠΈΠΆΡ‚Π΅ новия Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π΅ Π½Π° стадии). Π’ случай, Ρ‡Π΅ Π² stages-storage бъдС Π½Π°ΠΌΠ΅Ρ€Π΅Π½ подходящ ΠΎΠ±Ρ€Π°Π·, werf Ρ‰Π΅ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΠΈ Ρ‚ΠΎΠΊΡƒ-Ρ‰ΠΎ компилирания ΠΎΠ±Ρ€Π°Π· ΠΈ Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠ±Ρ€Π°Π·Π° ΠΎΡ‚ кСша.

Π‘ Π΄Ρ€ΡƒΠ³ΠΈ Π΄ΡƒΠΌΠΈ: ΠΏΡŠΡ€Π²ΠΈΡΡ‚ процСс, ΠΊΠΎΠΉΡ‚ΠΎ Π·Π°Π²ΡŠΡ€ΡˆΠΈ компилацията Π½Π° ΠΎΠ±Ρ€Π°Π·Π° (Π½Π°ΠΉ-Π±ΡŠΡ€Π·ΠΈΡΡ‚), ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΠΏΡ€Π°Π²ΠΎΡ‚ΠΎ Π΄Π° Π³ΠΎ Π·Π°ΠΏΠ°Π·ΠΈ Π² stages-storage (ΠΈ слСд Ρ‚ΠΎΠ²Π° Ρ‚ΠΎΠ·ΠΈ СдинствСн ΠΎΠ±Ρ€Π°Π· Ρ‰Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° всички ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ). Забавният процСс Π½Π° компилация Π½ΠΈΠΊΠΎΠ³Π° няма Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€Π° ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΈΡ процСс, Π·Π° Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ компилацията Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° стадия ΠΈ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ към ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° слСдващата.

β†’ ДокумСнтация.

ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° Π΅ производитСлността Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Π½Π° Dockerfile

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΡŠΡ‚ Π½Π° стадии Π·Π° ΠΎΠ±Ρ€Π°Π·Π°, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ ΠΎΡ‚ Dockerfile, сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ Π΅Π΄Π½Π° стадия β€” dockerfile. ΠŸΡ€ΠΈ изчисляванС Π½Π° сигнатурата сС счита ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° сума Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ контСкст, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΡ€ΠΈ сглобяванСто. ΠŸΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅ werf рСкурсивно минавашС ΠΏΡ€Π΅Π· всички Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΡˆΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° сума, сумирайки контСкста ΠΈ модификацията Π½Π° всСки Ρ„Π°ΠΉΠ». Π—Π°ΠΏΠΎΡ‡Π²Π°ΠΉΠΊΠΈ ΠΎΡ‚ вСрсии v1.1, werf ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° изчислСнитС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ суми, ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½ΠΈ Π² Git-рСпозитория.

Π’ основата Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° β€” git ls-tree. ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚ ΠΎΡ‚Ρ‡ΠΈΡ‚Π° записитС Π² .dockerignore ΠΈ ΠΌΠΈΠ½Π°Π²Π° рСкурсивно ΠΏΡ€Π΅Π· Π΄ΡŠΡ€Π²ΠΎΡ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ само ΠΏΡ€ΠΈ нСобходимост. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½, Π½ΠΈΠ΅ сС освободихмС ΠΎΡ‚ Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма, Π° зависимостта Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° контСкст Π½Π΅ Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½Π°.

ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° провСрява untracked Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ ΠΈ ΠΏΡ€ΠΈ нСобходимост Π³ΠΈ ΠΎΡ‚Ρ‡ΠΈΡ‚Π° Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° сума.

ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° Π΅ производитСлността ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅

Π’ вСрсиитС Π½Π° werf v1.1 сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° rsync ΡΡŠΡ€Π²ΡŠΡ€ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΈ. По-Ρ€Π°Π½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΡˆΠ΅ Π² Π΄Π²Π° Π΅Ρ‚Π°ΠΏΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° дирСктория ΠΎΡ‚ хост систСмата.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ‚Π΅ Π² macOS Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΎΡ‚ Docker volumes, Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ‚Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Π·Π° ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅, ΠΊΠ°ΠΊΡ‚ΠΎ Π² Linux ΠΈ Windows.

Π’Π°Π³ΠΎΠ²Π΅ ΠΏΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅

Werf v1.1 ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ‚Π°ΠΊΠ° Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΎΡ‚ΠΎ Ρ‚Π°Π³ΠΈΡ€Π°Π½Π΅ ΠΏΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ€Π°Π·Π° β€” content-based tagging. Π’Π°Π³ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Π½Ρ‚Π½ΠΈΡ‚Π΅ Docker ΠΎΠ±Ρ€Π°Π·ΠΈ зависят ΠΎΡ‚ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΈ.

ΠŸΡ€ΠΈ стартиранС Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° werf publish --tags-by-stages-signature ΠΈΠ»ΠΈ werf ci-env --tagging-strategy=stages-signature Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Ρ‚Π°Π³ΠΈΡ€Π°Π½ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π·ΠΈ с Ρ‚Π°ΠΊΠ° Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π°Ρ‚Π° сигнатура Π½Π° Π΅Ρ‚Π°ΠΏΠΈΡ‚Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π·Π°. ВсСки ΠΎΠ±Ρ€Π°Π· сС Ρ‚Π°Π³ΠΈΡ€Π° с Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° собствСна сигнатура Π½Π° Π΅Ρ‚Π°ΠΏΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΎΠ±Ρ€Π°Π·, която сС изчислява ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅Π΄ΠΎΠ²Π½Π°Ρ‚Π° сигнатура Π½Π° всСки ΠΎΡ‚ Π΅Ρ‚Π°ΠΏΠΈΡ‚Π΅ ΠΏΠΎΠΎΡ‚Π΄Π΅Π»Π½ΠΎ, Π½ΠΎ Π΅ ΠΎΠ±ΠΎΠ±Ρ‰Π°Π²Π°Ρ‰ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° ΠΎΠ±Ρ€Π°Π·Π°.

Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Π΅Ρ‚Π°ΠΏΠΈΡ‚Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π·Π° зависи ΠΎΡ‚:

  1. ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΎΠ±Ρ€Π°Π·;
  2. историята Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² Git, ΠΊΠΎΠΈΡ‚ΠΎ са Π΄ΠΎΠ²Π΅Π»ΠΈ Π΄ΠΎ Ρ‚ΠΎΠ²Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅.

Π’ Git рСпозитория Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ° ΠΏΡ€Π°Π·Π½ΠΈ ΠΊΠΎΠΌΠΈΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ промСнят ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π·Π°. НапримСр, ΠΊΠΎΠΌΠΈΡ‚ΠΈ само с ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ ΠΈΠ»ΠΈ merge ΠΊΠΎΠΌΠΈΡ‚ΠΈ, ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΈΡ‚ΠΈ, промСнящи Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Git, ΠΊΠΎΠΈΡ‚ΠΎ няма Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½ΠΈ Π² ΠΎΠ±Ρ€Π°Π·Π°.

ΠŸΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° tagging Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ, сС Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с Π½Π΅Π½ΡƒΠΆΠ½ΠΈΡ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΈ стартирания Π½Π° pod-ΠΎΠ²Π΅ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² Kubernetes, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ€Π°Π·Π°, Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ€Π°Π·Π° Π½Π΅ сС Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ. ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, Ρ‚ΠΎΠ²Π° Π΅ Π΅Π΄Π½Π° ΠΎΡ‚ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Ρ‡Π°Ρ‚ Π½Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° мноТСство микросСрвизи Π½Π° Π΅Π΄Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π΅Π΄ΠΈΠ½Π΅Π½ Git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, tagging Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° Ρ‚Π°Π³ΠΈΡ€Π°Π½Π΅ Π² сравнСниС с Ρ‚Π°Π³ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΏΠΎ Git ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π·ΠΈ Π½Π΅ зависи ΠΎΡ‚ Ρ€Π΅Π΄Π° Π½Π° изпълнСниС Π½Π° pipeline-ΠΈΡ‚Π΅ Π² CI систСмата Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° няколко ΠΊΠΎΠΌΠΈΡ‚Π° ΠΎΡ‚ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ΠΈ ΠΊΠ»ΠΎΠ½.

Π’Π°ΠΆΠ½ΠΎ: ΠΎΡ‚ тСкущия ΠΌΠΎΠΌΠ΅Π½Ρ‚ stages-signature β€” Ρ‚ΠΎΠ²Π° Π΅ СдинствСно ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½Π°Ρ‚Π° стратСгия Π·Π° Ρ‚Π°Π³ΠΈΡ€Π°Π½Π΅. Вя Ρ‰Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° werf ci-env (освСн Π°ΠΊΠΎ Π½Π΅ Π΅ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ посочСна Π΄Ρ€ΡƒΠ³Π° схСма Π·Π° Ρ‚Π°Π³ΠΈΡ€Π°Π½Π΅).

β†’ ДокумСнтация. На Ρ‚Π°Π·ΠΈ функция Ρ‰Π΅ бъдС посвСтСна ΠΎΡ‚Π΄Π΅Π»Π½Π° публикация. ΠΠšΠ’Π£ΠΠ›Π˜Π—Π˜Π ΠΠΠž (3 Π°ΠΏΡ€ΠΈΠ»): Бтатия с подробности Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π°.

Нива на логванС

ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΡ‚ ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° ΠΈΠ·Ρ…ΠΎΠ΄Π°, Π΄Π° Π·Π°Π΄Π°Π²Π° Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° Π»ΠΎΠ³Π²Π°Π½Π΅ ΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с ΠΎΡ‚Π»Π°Π΄ΡŠΡ‡Π½Π° информация. Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ --log-quiet, --log-verbose, --log-debug.

По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π² ΠΈΠ·Ρ…ΠΎΠ΄Π° сС ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ информация:

Π Π΅Π»ΠΈΠ· werf 1.1: подобрСния Π² сборщика днСс ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° Π±ΡŠΠ΄Π΅Ρ‰Π΅Ρ‚ΠΎ

ΠšΠΎΠ³Π°Ρ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄ (--log-verbose), ΠΌΠΎΠΆΠ΅ Π΄Π° сС прослСди ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ werf:

Π Π΅Π»ΠΈΠ· werf 1.1: подобрСния Π² сборщика днСс ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° Π±ΡŠΠ΄Π΅Ρ‰Π΅Ρ‚ΠΎ

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄ (--log-debug), освСн ΠΎΡ‚Π»Π°Π΄ΡŠΡ‡Π½Π°Ρ‚Π° информация Π½Π° werf, ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π»ΠΎΠ³ΠΎΠ²Π΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. НапримСр, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΠ΄ΠΈ ΠΊΠ°ΠΊ става взаимодСйствиСто с Docker Registry, Π° ΡΡŠΡ‰ΠΎ ΠΈ Π΄Π° сС фиксират мСстата, Π² ΠΊΠΎΠΈΡ‚ΠΎ сС отдСля Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ количСство Π²Ρ€Π΅ΠΌΠ΅:

Π Π΅Π»ΠΈΠ· werf 1.1: подобрСния Π² сборщика днСс ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° Π±ΡŠΠ΄Π΅Ρ‰Π΅Ρ‚ΠΎ

Π‘ΡŠΠ΄Π΅Ρ‰ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠžΠΏΠΈΡΠ°Π½ΠΈΡ‚Π΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ с надпис v1.1 Ρ‰Π΅ станат Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π² Ρ‚Π°Π·ΠΈ вСрсия, ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ тях β€” Π² Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅. АктуализациитС Ρ‰Π΅ Π΄ΠΎΠΉΠ΄Π°Ρ‚ Ρ‡Ρ€Π΅Π· автообновлСния ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° multiwerf. Π’Π΅Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ засягат стабилната част ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ v1.1, появата ΠΈΠΌ Π½Π΅ изисква Ρ€ΡŠΡ‡Π½ΠΎ намСса ΠΎΡ‚ потрСбитСля Π² Π²Π΅Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Пълна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Docker Registry (ΠΠžΠ’Πž)

Π¦Π΅Π»Ρ‚Π° Π΅ потрСбитСлят Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° рСализация Π±Π΅Π· ограничСния ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° werf.

Към ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° смС ΠΈΠ·Π»ΡŠΡ‡ΠΈΠ»ΠΈ слСдния Π½Π°Π±ΠΎΡ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π²ΡŠΠ·Π½Π°ΠΌΠ΅Ρ€ΡΠ²Π°ΠΌΠ΅ Π΄Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ пълна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°:

  • Default (library/registry)*,
  • AWS ECR,
  • Azure*,
  • Docker Hub,
  • GCR*,
  • GitHub Packages,
  • GitLab Registry*,
  • Harbor*,
  • Quay.

Π—Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡ‚ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° са напълно ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ ΠΎΡ‚ werf. Π—Π° останалитС ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°, Π½ΠΎ с ограничСния.

МоТСм Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°ΠΌΠ΅ Π΄Π²Π° основни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°:

  • Някои Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ изтСглянС Π½Π° Ρ‚Π°Π³ΠΎΠ²Π΅ Ρ‡Ρ€Π΅Π· Docker Registry API, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ позволява Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΡ‚ΠΎ почистванС, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π² werf. Π’ΠΎΠ²Π° Π²Π°ΠΆΠΈ Π·Π° AWS ECR, Docker Hub ΠΈ GitHub Packages.
  • Част ΠΎΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Ρ‚.Π½Π°Ρ€. nested repositories (Docker Hub, GitHub Packages ΠΈ Quay) ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚, Π½ΠΎ потрСбитСлят трябва Π΄Π° Π³ΠΈ създадС Ρ€ΡŠΡ‡Π½ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ UI ΠΈΠ»ΠΈ API (AWS ECR).

Π’Π΅Π·ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ API Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π°. Π’Π°Π·ΠΈ Π·Π°Π΄Π°Ρ‡Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΠΎΠΊΡ€ΠΈΡ‚ΠΈΠ΅ с тСстовС Π½Π° цСлия Ρ†ΠΈΠΊΡŠΠ» Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° werf Π·Π° всяко ΠΎΡ‚ тях.

РаспрСдСлСно ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ (↑)

  • ВСрсия: v1.2 v1.1 (ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° Π·Π° рСализация Π½Π° Ρ‚Π°Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½)
  • Π‘Ρ€ΠΎΠΊΠΎΠ²Π΅: ΠΌΠ°Ρ€Ρ‚-Π°ΠΏΡ€ΠΈΠ» ΠΌΠ°Ρ€Ρ‚
  • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° werf v1.0 ΠΈ v1.1 ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ само Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ хост Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΏΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ Π½Π° прилоТСния Π² Kubernetes.

Π—Π° Π΄Π° сС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° werf, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° прилоТСния Π² Kubernetes сС стартират Π½Π° няколко ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ хоста ΠΈ Ρ‚Π΅Π·ΠΈ хостовС Π½Π΅ Π·Π°ΠΏΠ°Π·Π²Π°Ρ‚ своС ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ (Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ runner'ΠΈ), ΠΎΡ‚ werf сС изисква Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Docker Registry ΠΊΠ°Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° ΡΡ‚ΡŠΠΏΠΊΠΈ.

ΠŸΡ€Π΅Π΄ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ werf всС ΠΎΡ‰Π΅ сС Π½Π°Ρ€ΠΈΡ‡Π°ΡˆΠ΅ dapp, имашС Ρ‚Π°ΠΊΠ°Π²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚. ΠžΠ±Π°Ρ‡Π΅ срСщнахмС Ρ€Π΅Π΄ΠΈΡ†Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° сС Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΏΡ€ΠΈ рСализацията Π½Π° Ρ‚Π°Π·ΠΈ функция Π² werf.

Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°. Π’Π°Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π½Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠΆΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ΡΡŠΠ±ΠΈΡ€Π°Ρ‡Π° Π²ΡŠΡ‚Ρ€Π΅ Π² pod'ΠΎΠ²Π΅ Π½Π° Kubernetes, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π·Π° Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΈΠ·Π±Π°Π²ΠΈΠΌ ΠΎΡ‚ зависимостта ΠΎΡ‚ локалния Docker-ΡΡŠΡ€Π²ΡŠΡ€ (Π² pod'Π° Π½Π° Kubernetes няма Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ локалния Docker-ΡΡŠΡ€Π²ΡŠΡ€, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ самият процСс Π΅ стартиран Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Docker-ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΏΠΎ ΠΌΡ€Π΅ΠΆΠ° werf Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΈ няма Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°). ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π² Kubernetes Ρ‰Π΅ бъдС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° GitHub Actions (ΠΠžΠ’Πž)

Π’ΠΊΠ»ΡŽΡ‡Π²Π° докумСнтация Π½Π° werf (Ρ€Π°Π·Π΄Π΅Π»ΠΈ reference ΠΈ guide), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π΅Π½ GitHub Action Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с werf.

ОсвСн Ρ‚ΠΎΠ²Π°, Ρ‰Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° werf Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Π΅Ρ„ΠΈΠΌΠ΅Ρ€Π½ΠΈ runner'ΠΈ.

ΠœΠ΅Ρ…Π°Π½ΠΈΠΊΠ°Ρ‚Π° Π½Π° взаимодСйствиС Π½Π° потрСбитСля с CI-систСмата Ρ‰Π΅ бъдС основана Π½Π° поставянС Π½Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ Π½Π° pull-request'ΠΈ Π·Π° ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ дСйствия ΠΏΠΎ ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅/Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

Π›ΠΎΠΊΠ°Π»Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° прилоТСния с werf (↓)

  • ВСрсия: v1.1
  • Π‘Ρ€ΠΎΠΊΠΎΠ²Π΅: януари-Ρ„Π΅Π²Ρ€ΡƒΠ°Ρ€ΠΈ Π°ΠΏΡ€ΠΈΠ»
  • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° Ρ†Π΅Π» Π΅ Π΄Π° сС постигнС Π΅Π΄ΠΈΠ½Π΅Π½ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ» Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° прилоТСния ΠΊΠ°ΠΊΡ‚ΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, Ρ‚Π°ΠΊΠ° ΠΈ Π² продукция, Π±Π΅Π· слоТни дСйствия, β€žΠΈΠ·Π²ΡŠΠ½ ΠΊΡƒΡ‚ΠΈΡΡ‚Π°β€œ.

ΠžΡ‚ werf ΡΡŠΡ‰ΠΎ сС изисква Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° сС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° дСбъгванС.

Нов Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° почистванС (ΠΠžΠ’Πž)

Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° вСрсия werf v1.1 Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ‚Π° cleanup Π½Π΅ Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π° почистванС Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ Π·Π° схСмата Π½Π° Π΅Ρ‚ΠΈΠΊΠΈΡ€Π°Π½Π΅ ΠΏΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ (content-based tagging) β€” Ρ‚Π΅Π·ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΈ Ρ‰Π΅ сС Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π°Ρ‚.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, Π² Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° вСрсия werf (v1.0 ΠΈ v1.1) сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π·Π° почистванС Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ ΠΏΠΎ схСми Π½Π° Π΅Ρ‚ΠΈΠΊΠΈΡ€Π°Π½Π΅: Git-ΠΊΠ»ΠΎΠ½, Git-Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ Git-ΠΊΠΎΠΌΠΌΠΈΡ‚.

БъздадСн Π΅ Π½ΠΎΠ² ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° почистванС Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ Π·Π° всички схСми Π½Π° Π΅Ρ‚ΠΈΠΊΠΈΡ€Π°Π½Π΅, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° историята Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚Π΅ Π² Git:

  • Π”Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π½Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ N1 ΠΎΠ±Ρ€Π°Π·ΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с N2 послСдни ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π·Π° всСки ΠΎΡ‚ git HEAD (ΠΊΠ»ΠΎΠ½ΠΈ ΠΈ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ).
  • Π”Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π½Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ N1 ΠΎΠ±Ρ€Π°Π·ΠΈ-стадии, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с N2 послСдни ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π·Π° всСки ΠΎΡ‚ git HEAD (ΠΊΠ»ΠΎΠ½ΠΈ ΠΈ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ).
  • Π”Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ всички ΠΎΠ±Ρ€Π°Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² ΠΊΠ°ΠΊΠ²ΠΈΡ‚ΠΎ ΠΈ Π΄Π° Π΅ рСсурси Π½Π° кластСр Kubernetes (сканират сС всички kube-контСксти Π½Π° конфигурационния Ρ„Π°ΠΉΠ» ΠΈ namespace'ΠΈ; ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈ Ρ‚Π°ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ със спСциални ΠΎΠΏΡ†ΠΈΠΈ).
  • Π”Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ всички ΠΎΠ±Ρ€Π°Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² манифСститС Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ рСсурси, Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ Π² Helm-Ρ€Π΅Π»ΠΈΠ·ΠΈΡ‚Π΅.
  • ΠžΠ±Ρ€Π°Π·ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚, Π°ΠΊΠΎ Π½Π΅ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ с Π½ΠΈΡ‚ΠΎ Π΅Π΄ΠΈΠ½ HEAD ΠΎΡ‚ git (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Ρ‰ΠΎΡ‚ΠΎ самият ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π΅Π½ HEAD Π΅ Π±ΠΈΠ» ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚) ΠΈ Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Π½ΠΈΡ‚ΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ манифСститС Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Kubernetes ΠΈ Π² Ρ€Π΅Π»ΠΈΠ·ΠΈΡ‚Π΅ Π½Π° Helm.

ΠŸΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ (↓)

  • ВСрсия: v1.1
  • Π‘Ρ€ΠΎΠΊΠΎΠ²Π΅: януари-Ρ„Π΅Π²Ρ€ΡƒΠ°Ρ€ΠΈ Π°ΠΏΡ€ΠΈΠ»*

Π’Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° вСрсия Π½Π° werf ΡΡŠΠ±ΠΈΡ€Π° ΠΎΠ±Ρ€Π°Π·ΠΈ ΠΈ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΈ, описани Π² werf.yaml, послСдоватСлно. НСобходимо Π΅ Π΄Π° сС Ρ€Π°Π·ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ процСситС Π½Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° нСзависими стадии Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ ΠΈ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π΄Π° сС осигури ΡƒΠ΄ΠΎΠ±Π΅Π½ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄.

* Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°: ΡΡ€ΠΎΠΊΡŠΡ‚ Π΅ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½ ΠΏΠΎΡ€Π°Π΄ΠΈ повишСн ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ строитСлство, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° werf с GitHub Actions. ΠŸΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎΡ‚ΠΎ строитСлство Π΅ слСдващата ΡΡ‚ΡŠΠΏΠΊΠ° Π² оптимизацията, прСдоставяща Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ ΠΏΡ€ΠΈ строитСлство Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

ΠŸΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° Helm 3 (↓)

  • ВСрсия: v1.2
  • Π‘Ρ€ΠΎΠΊΠΎΠ²Π΅: Ρ„Π΅Π²Ρ€ΡƒΠ°Ρ€ΠΈ-ΠΌΠ°Ρ€Ρ‚ ΠΌΠ°ΠΉ*

Π’ΠΊΠ»ΡŽΡ‡Π²Π° Π² сСбС си ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²Π° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π° Helm 3 ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½, ΡƒΠ΄ΠΎΠ±Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π·Π° миграция Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ инсталации.

* Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°: ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Helm 3 няма Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ ΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π² werf, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ всички ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Helm 3 (3-way-merge ΠΈ липса Π½Π° tiller) Π²Π΅Ρ‡Π΅ са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π² werf. По-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ Π΅, Ρ‡Π΅ werf Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π° с Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ освСн посочСнитС. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ остава Π² Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ ΠΈ Ρ‰Π΅ бъдС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ.

Jsonnet Π·Π° описаниС Π½Π° конфигурацията Π½Π° Kubernetes (↓)

  • ВСрсия: v1.2
  • Π‘Ρ€ΠΎΠΊΠΎΠ²Π΅: януари-Ρ„Π΅Π²Ρ€ΡƒΠ°Ρ€ΠΈ Π°ΠΏΡ€ΠΈΠ»-ΠΌΠ°ΠΉ

Werf Ρ‰Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° описаниС Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π·Π° Kubernetes Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Jsonnet. ΠšΠ°Ρ‚ΠΎ цяло werf Ρ‰Π΅ останС ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с Helm ΠΈ Ρ‰Π΅ ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° описаниС.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π΅, Ρ‡Π΅ ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΡ‚Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Go, спорСд ΠΎΡ†Π΅Π½ΠΊΠΈΡ‚Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€Π°, ΠΈΠΌΠ°Ρ‚ голям ΠΏΡ€Π°Π³ Π½Π° Π²Π»ΠΈΠ·Π°Π½Π΅ ΠΈ яснотата Π½Π° ΠΊΠΎΠ΄Π° Π½Π° Ρ‚Π΅Π·ΠΈ шаблони ΡΡŠΡ‰ΠΎ страда.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° внСдряванС ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ систСми Π·Π° описаниС Π½Π° конфигурацията Π½Π° Kubernetes (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Kustomize).

Π Π°Π±ΠΎΡ‚Π° Π²ΡŠΡ‚Ρ€Π΅ Π² Kubernetes (↓)

  • ВСрсия: v1.2
  • Π‘Ρ€ΠΎΠΊΠΎΠ²Π΅: Π°ΠΏΡ€ΠΈΠ»-ΠΌΠ°ΠΉ ΠΌΠ°ΠΉ-июни

Π¦Π΅Π»: Π΄Π° сС осигури строитСлство Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ ΠΈ доставка Π½Π° прилоТСния с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° runner'ΠΈ Π² Kubernetes. Π’.Π΅. строитСлството Π½Π° Π½ΠΎΠ²ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΈ, тяхната публикация, почистванС ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° става Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ pod-ΠΎΠ²Π΅ Π½Π° Kubernetes.

Π—Π° Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Ρ‚Π°Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚, ΠΏΡŠΡ€Π²ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ строитСлство Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈ (Π²ΠΆ. Ρ‚ΠΎΡ‡ΠΊΠ° ΠΏΠΎ-Π³ΠΎΡ€Π΅).

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° сС изисква ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° строитСля Π±Π΅Π· Docker-сСрвСр (Ρ‚.Π΅. строитСлство Π² стил Kaniko ΠΈΠ»ΠΈ Π² userspace).

Werf Ρ‰Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° строитСлство Π² Kubernetes Π½Π΅ само с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Dockerfile, Π½ΠΎ ΠΈ със своя строитСл Stapel с ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΈ прСрСгистрация ΠΈ Ansible.

Π‘Ρ‚ΡŠΠΏΠΊΠ° към ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅

ΠžΠ±ΠΈΡ‡Π°ΠΌΠ΅ Π½Π°ΡˆΠ°Ρ‚Π° общност (GitHub, Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ) ΠΈ искамС всС ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ…ΠΎΡ€Π° Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π΄Π° направят werf ΠΏΠΎ-Π΄ΠΎΠ±ΡŠΡ€, Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π°Ρ‚ Π² ΠΊΠ°ΠΊΠ²Π° посока сС Π΄Π²ΠΈΠΆΠΈΠΌ ΠΈ Π΄Π° участват Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°.

БъвсСм наскоро бСшС Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ Π½Π° GitHub project boards Π·Π° Π΄Π° ΠΏΡ€ΠΈΠΎΡ‚Π²ΠΎΡ€ΠΈΠΌ работния процСс Π½Π° нашия Π΅ΠΊΠΈΠΏ. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ‚Π΅ Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΊΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΎΠ²Π΅, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ слСднитС направлСния:

Π˜Π·Π²ΡŠΡ€ΡˆΠ΅Π½Π° Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с issues:

  • ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ΠΈ са Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»Π½ΠΈΡ‚Π΅.
  • Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ са ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈ Π² Π΅Π΄ΠΈΠ½Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ с Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ ΠΈ подробности.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π½ΠΎΠ²ΠΈ issues с ΠΈΠ΄Π΅ΠΈ ΠΈ прСдлоТСния.

Как Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ вСрсия v1.1

ВСрсията Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π² ΠΊΠ°Π½Π°Π» 1.1 ea (Π² ΠΊΠ°Π½Π°Π»ΠΈΡ‚Π΅ . Ако сС Π΅ появила Π³Ρ€Π΅ΡˆΠΊΠ° с ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π½Π° ΠΊΠ°Π½Π°Π»Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π½Π° ΠΈ с rock-solid Ρ€Π΅Π»ΠΈΠ·ΠΈΡ‚Π΅ Ρ‰Π΅ сС появяват, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ стабилизирамС, Π½ΠΎ stable сама ΠΏΠΎ сСбС си Π²Π΅Ρ‡Π΅ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ стабилна Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π»Π° ΠΏΡ€Π΅Π· ΠΊΠ°Π½Π°Π»ΠΈΡ‚Π΅ alpha ΠΈ beta). Активира сС Ρ‡Ρ€Π΅Π· multiwerf ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

source $(multiwerf use 1.1 ea)
werf COMMAND ...

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Новата Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π° Π΅Ρ‚Π°ΠΏΠΈ ΠΈ оптимизацията Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° сборщика Π·Π° Stapel ΠΈ Dockerfile сборщики отварят Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈ сборки Π² werf. Π’Π΅Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ скоро Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π² ΡΡŠΡ‰ΠΈΡ Ρ€Π΅Π»ΠΈΠ· v1.1 ΠΈ Ρ‰Π΅ станат Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Ρ‡Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ multiwerf).

Π’ Ρ‚ΠΎΠ·ΠΈ Ρ€Π΅Π»ΠΈΠ· Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° стратСгия Π·Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ€Π°Π½Π΅ ΠΏΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅ β€” content-based tagging, β€” която стана стратСгия ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Π»ΠΎΠ³ΡŠΡ‚ Π½Π° основнитС ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ: werf build, werf publish, werf deploy, werf dismiss, werf cleanup.

Π‘Π»Π΅Π΄Π²Π°Ρ‰Π°Ρ‚Π° Π·Π½Π°Ρ‡ΠΈΠΌΠ° ΡΡ‚ΡŠΠΏΠΊΠ° Ρ‰Π΅ бъдС добавянСто Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ сборки. Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ‚Π΅ сборки ΠΎΡ‚ вСрсия v1.0 станаха ΠΏΠΎ-ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Π° Π·Π°Π΄Π°Ρ‡Π° ΠΎΡ‚ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈΡ‚Π΅ сборки, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ добавят ΠΏΠΎΠ²Π΅Ρ‡Π΅ стойност Π½Π° werf: Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ Π½Π° сборщицитС ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅ Π½Π° Π΅Ρ„Π΅ΠΌΠ΅Ρ€Π½ΠΈ сборщики Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ CI/CD систСми, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° GitHub Actions. Π—Π°Ρ‚ΠΎΠ²Π° сроковСтС Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈΡ‚Π΅ сборки бяха ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½ΠΈ. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ, Π·Π° Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ възмоТно Π½Π°ΠΉ-скоро ΠΈ Π΄Π²Π΅Ρ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ.

Π‘Π»Π΅Π΄Π΅Ρ‚Π΅ Π½ΠΎΠ²ΠΈΠ½ΠΈΡ‚Π΅! И Π½Π΅ забравяйтС Π΄Π° посСтитС нашия GitHub, Π·Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ issue, Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΎ ΠΈ Π΄Π° слоТитС плюс, Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ PR ΠΈΠ»ΠΈ просто Π΄Π° Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚Π΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

P.S.

ΠŸΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π² нашия Π±Π»ΠΎΠ³:

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster