GitHub ΡΠ°ΡΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΅ΡΠΈΡ Π°ΡΠ°ΠΊ, Π² Ρ ΠΎΠ΄Π΅ ΠΊΠΎΡΠΎΡΡΡ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³ ΠΊΡΠΈΠΏΡΠΎΠ²Π°Π»ΡΡΡ Π² ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ GitHub, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ GitHub Actions. ΠΠ΅ΡΠ²ΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ GitHub Actions Π΄Π»Ρ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° Π΄Π°ΡΠΈΡΠΎΠ²Π°Π½Ρ Π½ΠΎΡΠ±ΡΡΠΌ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°.
GitHub Actions Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² GitHub. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ GitHub Actions ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈΠ»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π½ΠΎΠ²ΡΡ Issues. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° Π°ΡΠ°ΠΊΡΡΡΠΈΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΡΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ GitHub Actions, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² ΡΠ²ΠΎΡ ΠΊΠΎΠΏΠΈΡ Π½ΠΎΠ²ΡΠΉ GitHub Actions ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ pull-Π·Π°ΠΏΡΠΎΡ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠΈΠΉ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² GitHub Actions Π½Π° Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ «.github/workflows/ci.yml».
ΠΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ pull-Π·Π°ΠΏΡΠΎΡ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°ΡΠ°ΠΊΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° GitHub Actions, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠ»Π΅ 72 ΡΠ°ΡΠΎΠ² ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΡΡΡ ΠΈΠ·-Π·Π° ΡΠ°ΠΉΠΌΠ°ΡΡΠ°, Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΠ±ΠΎΠ΅ΠΌ ΠΈ Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π²Π½ΠΎΠ²Ρ. ΠΠ»Ρ Π°ΡΠ°ΠΊΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»ΠΈΡΡ ΡΠΎΠ·Π΄Π°ΡΡ pull-Π·Π°ΠΏΡΠΎΡ — ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΠΈΡΡ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ GitHub Actions.
Π Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΠΎΠΌ Π°ΡΠ°ΠΊΡΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ci.yml Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ «run» ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ±ΡΡΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ (eval «$(echo ‘YXB0IHVwZGF0ZSAt…’ | base64 -d»), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΡΠ°Π΅ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π°. Π ΠΏΠ΅ΡΠ²ΡΡ
Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ
Π°ΡΠ°ΠΊΠΈ Ρ ΡΠ°Π·Π½ΡΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π½Π° GitHub ΠΈ GitLab Π·Π°Π³ΡΡΠΆΠ°Π»Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π½Π°Π·Π²Π°Π½Π½Π°Ρ npm.exe ΠΈ ΡΠΎΠ±ΡΠ°Π½Π½Π°Ρ Π² ΡΠΎΡΠΌΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ELF-ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ Alpine Linux (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΎΠ±ΡΠ°Π·Π°Ρ
Docker). Π Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΡ
ΡΠΎΡΠΌΠ°Ρ
Π°ΡΠ°ΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΊΠΎΠ΄ ΡΠΈΠΏΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΠΉΠ½Π΅ΡΠ° XMRig ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ° ΠΊΠΎΡΠ΅Π»ΡΠΊΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru