ΠΠ°Π΄Π°Π½ΠΈΠ΅ 1 Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ: Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ΅Π±Π΅ jenkins ΠΏΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈΠ· Π»Π΅ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ Π»ΡΠ±ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Docker Π² ΡΡΠΎΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π½Π° ΠΌΠ°ΡΠΈΠ½Ρ Ρ jenkins golang. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΠΎΠΉ Π°ΠΊΠΊΠ°ΡΠ½Ρ Π½Π° GitHub, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ΅Π±Π΅ ΡΠΎΡΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. Π ΡΡΠΎΠΌ ΠΆΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΠ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π² jenkins Freestyle Project, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠΉΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΊ Π½Π΅ΠΌΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΠΈΡΠ΅ Π·Π°ΠΏΡΡΠΊ ΡΠ΅ΡΡΠΎΠ² ΠΈ ΡΠ±ΠΎΡΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° go test . ΠΈ docker build .. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ²Π΅ΡΠ° ΠΏΡΠΈΡΠ»ΠΈΡΠ΅ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ°Π΄Π°Π½ΠΈΠ΅ 2 Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ: Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ pipeline. ΠΠ΅ΡΠ΅ΠΏΠΈΡΠΈΡΠ΅ ΡΠ±ΠΎΡΠΊΡ ΠΈΠ· Π·Π°Π΄Π°Π½ΠΈΡ 1 Π½Π° declarative Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π°. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ²Π΅ΡΠ° ΠΏΡΠΈΡΠ»ΠΈΡΠ΅ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ°Π΄Π°Π½ΠΈΠ΅ 3 Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ: Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π½Π° ΠΌΠ°ΡΠΈΠ½Ρ Nexus. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ raw-hosted ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ pipeline ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π²ΠΌΠ΅ΡΡΠΎ Docker-ΠΎΠ±ΡΠ°Π·Π° ΡΠΎΠ±ΠΈΡΠ°Π»ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ go-ΡΠ°ΠΉΠ». ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ· Dockerfile. ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΠ°ΠΉΠ» Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ jenkins. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ²Π΅ΡΠ° ΠΏΡΠΈΡΠ»ΠΈΡΠ΅ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ.