GitHub рд╕рд░реНрд╡рд░ рдкрд░ рдХреНрд░рд┐рдкреНрдЯреЛрдХрд░реЗрдВрд╕реА рдорд╛рдЗрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП GitHub рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рд╣рдорд▓рд╛

GitHub рд╣рдорд▓реЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд▓рд╛рд╡рд░ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП GitHub Actions рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ GitHub рдХреНрд▓рд╛рдЙрдб рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдкрд░ рдХреНрд░рд┐рдкреНрдЯреЛрдХрд░реЗрдВрд╕реА рдХреЛ рдорд╛рдЗрди рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рдЦрдирди рдХреЗ рд▓рд┐рдП GitHub Actions рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкрд╣рд▓рд╛ рдкреНрд░рдпрд╛рд╕ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдирд╡рдВрдмрд░ рдореЗрдВ рд╣реБрдЖ рдерд╛ред

GitHub рдХреНрд░рд┐рдпрд╛рдПрдБ рдХреЛрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ GitHub рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, GitHub рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдХрдорд┐рдЯ рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рдЬрд╛рдБрдЪ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдирдП рдореБрджреНрджреЛрдВ рдХреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЦрдирди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд▓рд╛рд╡рд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдПрдХ рдХрд╛рдВрдЯрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ GitHub Actions рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЕрдкрдиреА рдХреЙрдкреА рдореЗрдВ рдПрдХ рдирдпрд╛ GitHub Actions рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдореМрдЬреВрджрд╛ GitHub Actions рд╣реИрдВрдбрд▓рд░ рдХреЛ рдирдП ".github/workflows" рд╕реЗ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддреЗ рд╣реБрдП рдореВрд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИред /ci.ymlтАЭ рд╣реИрдВрдбрд▓рд░ред

рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╣рдорд▓рд╛рд╡рд░-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд┐рдЯрд╣рдм рдПрдХреНрд╢рди рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рдпрд╛рд╕ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ 72 рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рдХрд╛рд░рдг рдмрд╛рдзрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдлрд┐рд░ рд╕реЗ рдЪрд▓рддрд╛ рд╣реИред рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рд╣реИрдВрдбрд▓рд░ рдореВрд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд░рдЦрд░рдЦрд╛рд╡рдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдкреБрд╖реНрдЯрд┐ рдпрд╛ рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рд╕рдВрджрд┐рдЧреНрдз рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдЧрд┐рдЯрд╣рдм рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИред

рд╣рдорд▓рд╛рд╡рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝реЗ рдЧрдП ci.yml рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, "рд░рди" рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдЕрд╕реНрдкрд╖реНрдЯ рдХреЛрдб (eval "$(echo 'YXB0IHVwZGF0ZSAt...' | Base64 -d") рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдкрд░, рдЦрдирди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╣рдорд▓реЗ рдХреЗ рдкрд╣рд▓реЗ рд╡реЗрд░рд┐рдПрдВрдЯ рдореЗрдВ npm.exe рдирд╛рдордХ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ GitHub рдФрд░ GitLab рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрд▓реНрдкрд╛рдЗрди рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп ELF рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдбреЙрдХрд░ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд)ред рд╣рдорд▓реЗ рдХреЗ рдирдП рд░реВрдк рдПрдХ рд╕рд╛рдорд╛рдиреНрдп XMRig рдХрд╛ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдорд╛рдЗрдирд░, рдЬрд┐рд╕реЗ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдбреНрд░реЗрд╕ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╡реЙрд▓реЗрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ