Π Π΅Π»ΠΈΠ· Π½Π° 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 ΠΏΠ°Ρ‡ΠΎΠ²Π΅: install, beforeSetup, setup; ΠΈΠ»ΠΈ 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. ΠŸΡ€ΠΈ изчисляванС Π½Π° сигнатурата сС Π²Π·ΠΈΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° сума Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ context, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° сглобяванС. ΠŸΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅ werf ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΡˆΠ΅ рСкурсивно ΠΏΡ€Π΅Π· всички Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΡˆΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° сума, сумирайки контСкста ΠΈ модификацията Π½Π° всСки Ρ„Π°ΠΉΠ». Π—Π°ΠΏΠΎΡ‡Π²Π°ΠΉΠΊΠΈ ΠΎΡ‚ вСрсии v1.1, werf ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° изчислСнитС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ суми, ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½ΠΈ Π² Git рСпозитория.

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

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

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

Π’ вСрсиитС Π½Π° 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, ΠΊΠΎΠΈΡ‚ΠΎ няма Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½ΠΈ Π² ΠΎΠ±Ρ€Π°Π·Π°.

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

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

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

β†’ ДокумСнтация. На Ρ‚Π°Π·ΠΈ функция Ρ‰Π΅ бъдС посвСтСна ΠΈ ΠΎΡ‚Π΄Π΅Π»Π½Π° публикация. ΠžΠ‘ΠΠžΠ’Π•ΠΠž (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-a Π½Π° Kubernetes няма Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ локалния Docker-ΡΡŠΡ€Π²ΡŠΡ€, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ самият процСс Π΅ стартиран Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Docker-ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΏΡ€Π΅Π· ΠΌΡ€Π΅ΠΆΠ° werf Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΈ няма Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°). ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π² Kubernetes Ρ‰Π΅ бъдС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ.

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

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

ОсвСн Ρ‚ΠΎΠ²Π°, Ρ‰Π΅ позволя Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ werf Π½Π° Π΅Ρ„Π΅ΠΌΠ΅Ρ€Π½ΠΈ runner-ΠΈ.

ΠœΠ΅Ρ…Π°Π½ΠΈΠΊΠ° Π½Π° взаимодСйствиС Π½Π° потрСбитСля с CI-систСмата Ρ‰Π΅ бъдС основана Π½Π° поставянСто Π½Π° label-ΠΎΠ²Π΅ Π½Π° 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, Telegram) ΠΈ искамС всС ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ…ΠΎΡ€Π° Π΄Π° ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ Π·Π° подобряванС Π½Π° werf, Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ Π² ΠΊΠ°ΠΊΠ²Π° посока сС Π΄Π²ΠΈΠΆΠΈΠΌ ΠΈ Π΄Π° участват Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ.

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

Π˜Π·Π²ΡŠΡ€ΡˆΠ΅Π½Π° Π΅ голяма Ρ€Π°Π±ΠΎΡ‚Π° с issues:

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

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

ВСрсията Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π² ΠΊΠ°Π½Π°Π» 1.1 ea (Π² ΠΊΠ°Π½Π°Π»ΠΈΡ‚Π΅ stable ΠΈ rock-solid Ρ€Π΅Π»ΠΈΠ·ΠΈΡ‚Π΅ Ρ‰Π΅ сС появяват с Π½Π°ΠΏΡ€Π΅Π΄Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° стабилизацията, ΠΎΠ±Π°Ρ‡Π΅ ea тя сама ΠΏΠΎ сСбС си Π²Π΅Ρ‡Π΅ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ стабилна Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π»Π° ΠΏΡ€Π΅Π· ΠΊΠ°Π½Π°Π»ΠΈΡ‚Π΅. alpha ΠΈ Π±Π΅Ρ‚Π°). Активира сС Ρ‡Ρ€Π΅Π· 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