Libseccomp: рдмрдЧ: рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рдХреЛ рдЧрд┐рдЯрд╣рдм рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдирд╡ре░ 2020  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: seccomp/libseccomp

рдЗрд╕ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЗрдЦ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреБрдЫ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдж рд░рдЬрд┐рд╕реНрдЯрд░ рд▓реЗрдЦ рджреЗрдЦреЗрдВ:

рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ libseccomp рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рд╣рдореЗрдВ рд╕реАрдЖрдИ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЧрд┐рдЯрд╣рдм рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП:

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Github Actions рдХрд╛ рд▓реБрдХ рдкрд╕рдВрдж рдЖ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рд╕реЗ рдЬреАрдердм рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ libcgroup рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рдПрдХ рдкреИрдЪрд╕реЗрдЯ рднреЗрдЬрд╛ рд╣реИред

https://github.com/drakenclimber/libcgroup/tree/issues/github_actions
https://sourceforge.net/p/libcg/mailman/message/37165461/

рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ libseccomp рдХреЗ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪрд╕реЗрдЯ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдБрдЧрд╛ред

рд╕рднреА 14 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣рд╛рдВ рдЯреНрд░реИрд╡рд┐рд╕реА рд╕реЗ рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд╛рдЗрдб рд╣реИред рдореИрдВ рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
https://docs.github.com/hi/free-pro-team@latest/actions/learn -github-actions/migrating-from-travis-ci-to-github-actions

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Github Actions рдХрд╛ рд▓реБрдХ рдкрд╕рдВрдж рдЖ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рд╕реЗ рдЬреАрдердм рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ libcgroup рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рдПрдХ рдкреИрдЪрд╕реЗрдЯ рднреЗрдЬрд╛ рд╣реИред

https://github.com/drakenclimber/libcgroup/tree/issues/github_actions
https://sourceforge.net/p/libcg/mailman/message/37165461/

рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ libseccomp рдХреЗ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪрд╕реЗрдЯ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдБрдЧрд╛ред

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ @drakenclimber , рдзрдиреНрдпрд╡рд╛рдж!

рдпрд╣рд╛рдБ рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рд╕рдорд╛рдзрд╛рди рд╕реЗ рдХреБрдЫ рдорд╛рдореВрд▓реА рд╡рд┐рдЪрд▓рди рдХреЗ рд╕рд╛рде amd64 рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдЧреАрдердм рдПрдХреНрд╢рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдиреНрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рд╣реИред

рдкреЗрд╢реЗрд╡рд░реЛрдВ:

  • рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиред рдореИрдВ рдЬреАрдердм рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдПрдХ рд╕рддрдд рдПрдХреАрдХрд░рдг рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛
  • рдпрд╣ рдПрдХ рдореЗрдВ Encapsulate рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рднреА рд╣реИ рдХрд╛рд░реНрд░рд╡рд╛рдИ ред рдЗрди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рднреАрддрд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдПрдХ рдХреНрд░рд┐рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛ рд╕рдХрддреА рд╣реИ ред)
  • рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЧрддрд┐ (рдХрдо рд╕реЗ рдХрдо amd64 рдХреЗ рд▓рд┐рдП)ред рд╕рдВрдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ 22 рдорд┐рдирдЯ рдореЗрдВ рдкреВрд░рд╛ рд╣реБрдЖ
  • рдЕрдЪреНрдЫрд╛ рдЬреАрдпреВрдЖрдИ рдФрд░ рдЕрд╕рдлрд▓ рдХрджрдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рд╣реИрдВ
  • рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреАрдердм рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░рдХрд░рдг рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдореЗрдЯрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕рдХреЗ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдирдВрдмрд░ рдХреЛ

рджреЛрд╖:

  • рдЕрдиреНрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореВрд▓ рд╕рдорд░реНрдерди рдирд╣реАрдВ

    • рдПрдХ рдЬреАрдердм рдХрд░реНрдордЪрд╛рд░реА рдиреЗ рдЖрд░реНрдо 64 рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдпрд╛, рдФрд░ рдХреБрдЫ рдлрд╝рд┐рдбрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдореИрдВ рдореВрд▓ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред (рдЯреЗрд╕реНрдЯ 52 - рдмреЗрд╕рд┐рдХ рд▓реЛрдб - рдХрд┐рд╕реА рдЕрдЬреАрдм рдХрд╛рд░рдг рд╕реЗ рд╡рд┐рдлрд▓ред) рд▓реЗрдХрд┐рди рдпрд╣ рд╕реЗрдЯрдЕрдк рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреБрдиреМрддреА рд╣реИред рдореИрдВ рдЕрдЬрдЧрд░ рдкрд░реАрдХреНрд╖рдг рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ред рдУрд╣, рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдзреАрдорд╛ рд╣реИ - arm64 рдкрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдПрдХ рдкрд╛рд░реЗ рд╣реБрдП рд╕реЗрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдПрдХ рдШрдВрдЯреЗ рдХрд╛ рд╕рдордп рд▓рдЧрд╛ред ppc64el рдиреЗ рдЗрд╕реЗ рдорд╛рд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ

    • рдПрдХ рдЬреАрдердм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрдирд╛рдпрд╛ рдЬреЛ рдЧреИрд░-рджреЗрд╢реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреБрдЫ рд╣рдж рддрдХ рднрджреНрджреА рд╣реИ рдФрд░ рд╣рдореЗрдВ рдХреЛрдб рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХреА рд╕рдорд░реНрдерд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдордВрдЪ рд╕реВрдЪреА рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╣реИ

    • Github Actions рд╕реНрд╡-рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдзрд╛рд╡рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ (рдмрджрд╕реВрд░рдд) рд╡рд┐рдХрд▓реНрдк рдПрдХ рд╕рдорд░реНрдкрд┐рдд arm64, ppc64le, рдЖрджрд┐ рдмреЙрдХреНрд╕ рдвреВрдВрдврдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдбрд┐рдмрдЧрд┐рдВрдЧ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рд░рд▓ рд╣реЛрдЧреА

рдЕрдиреНрдп:

  • Coveralls.io рдиреЗ рдПрдХ Github Action рдмрдирд╛рдпрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рдореМрдЬреВрджрд╛ TravisCI рд╕рдорд╛рдзрд╛рди, cpp-coveralls , Github Actions рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ libcgroup рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ
  • Coveralls рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ lcov.info рдлрд╝рд╛рдЗрд▓ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ lcov рдХрд╛ рдпрд╣ рд▓рд╛рдЗрди рдХрд╡рд░ рдХреА рдЧрдИ рдереА рдпрд╛ рдирд╣реАрдВ, рдЬрдмрдХрд┐ рдЬреАрдердм рдПрдХреНрд╢рди рд╕реЙрд▓реНрдпреВрд╢рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдХрд╣рддрд╛ рд╣реИ ред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬреАрдердм рдПрдХреНрд╢рди рд╕рд╣реА рд╣реИ рдФрд░ рд╣рдорд╛рд░рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди рдЗрд╕рдХреА рдХрд╡рд░реЗрдЬ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдЧрд▓рдд рдмрддрд╛ рд░рд╣рд╛ рд╣реИ
  • рд╕реНрд╡рдпрдВ рдХреЛ рдзреНрдпрд╛рди рджреЗрдВ - рдореЗрд░реЗ рдкрд╛рд╕ --exclude src/arch-syscall-check.c lcov рдзреНрд╡рдЬ рдХрд╛рд░реНрдп рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреЛрдИ рд╕реБрд░рд╛рдЧ рдирд╣реАрдВ рдХреНрдпреЛрдВ

рдпрд╣рд╛рдБ рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рд╕рдорд╛рдзрд╛рди рд╕реЗ рдХреБрдЫ рдорд╛рдореВрд▓реА рд╡рд┐рдЪрд▓рди рдХреЗ рд╕рд╛рде amd64 рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдЧреАрдердм рдПрдХреНрд╢рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдиреНрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рд╣реИред

рдкреЗрд╢реЗрд╡рд░реЛрдВ:

  • рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиред рдореИрдВ рдЬреАрдердм рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдПрдХ рд╕рддрдд рдПрдХреАрдХрд░рдг рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛
  • рдпрд╣ рдПрдХ рдореЗрдВ Encapsulate рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рднреА рд╣реИ рдХрд╛рд░реНрд░рд╡рд╛рдИ ред рдЗрди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рднреАрддрд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдПрдХ рдХреНрд░рд┐рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛ рд╕рдХрддреА рд╣реИ ред)
  • рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЧрддрд┐ (рдХрдо рд╕реЗ рдХрдо amd64 рдХреЗ рд▓рд┐рдП)ред рд╕рдВрдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ 22 рдорд┐рдирдЯ рдореЗрдВ рдкреВрд░рд╛ рд╣реБрдЖ
  • рдЕрдЪреНрдЫрд╛ рдЬреАрдпреВрдЖрдИ рдФрд░ рдЕрд╕рдлрд▓ рдХрджрдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рд╣реИрдВ
  • рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреАрдердм рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░рдХрд░рдг рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдореЗрдЯрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕рдХреЗ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдирдВрдмрд░ рдХреЛ

рджреЛрд╖:

  • рдЕрдиреНрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореВрд▓ рд╕рдорд░реНрдерди рдирд╣реАрдВ

    • рдПрдХ рдЬреАрдердм рдХрд░реНрдордЪрд╛рд░реА рдиреЗ рдЖрд░реНрдо 64 рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдпрд╛, рдФрд░ рдХреБрдЫ рдлрд╝рд┐рдбрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдореИрдВ рдореВрд▓ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред (рдЯреЗрд╕реНрдЯ 52 - рдмреЗрд╕рд┐рдХ рд▓реЛрдб - рдХрд┐рд╕реА рдЕрдЬреАрдм рдХрд╛рд░рдг рд╕реЗ рд╡рд┐рдлрд▓ред) рд▓реЗрдХрд┐рди рдпрд╣ рд╕реЗрдЯрдЕрдк рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреБрдиреМрддреА рд╣реИред рдореИрдВ рдЕрдЬрдЧрд░ рдкрд░реАрдХреНрд╖рдг рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ред рдУрд╣, рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдзреАрдорд╛ рд╣реИ - arm64 рдкрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдПрдХ рдкрд╛рд░реЗ рд╣реБрдП рд╕реЗрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдПрдХ рдШрдВрдЯреЗ рдХрд╛ рд╕рдордп рд▓рдЧрд╛ред ppc64el рдиреЗ рдЗрд╕реЗ рдорд╛рд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ
    • рдПрдХ рдЬреАрдердм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрдирд╛рдпрд╛ рдЬреЛ рдЧреИрд░-рджреЗрд╢реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреБрдЫ рд╣рдж рддрдХ рднрджреНрджреА рд╣реИ рдФрд░ рд╣рдореЗрдВ рдХреЛрдб рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХреА рд╕рдорд░реНрдерд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдордВрдЪ рд╕реВрдЪреА рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╣реИ
    • Github Actions рд╕реНрд╡-рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдзрд╛рд╡рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ (рдмрджрд╕реВрд░рдд) рд╡рд┐рдХрд▓реНрдк рдПрдХ рд╕рдорд░реНрдкрд┐рдд arm64, ppc64le, рдЖрджрд┐ рдмреЙрдХреНрд╕ рдвреВрдВрдврдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдбрд┐рдмрдЧрд┐рдВрдЧ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рд░рд▓ рд╣реЛрдЧреА

рдЕрдиреНрдп:

  • Coveralls.io рдиреЗ рдПрдХ Github Action рдмрдирд╛рдпрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рдореМрдЬреВрджрд╛ TravisCI рд╕рдорд╛рдзрд╛рди, cpp-coveralls , Github Actions рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ libcgroup рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ
  • Coveralls рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ lcov.info рдлрд╝рд╛рдЗрд▓ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ lcov рдХрд╛ рдпрд╣ рд▓рд╛рдЗрди рдХрд╡рд░ рдХреА рдЧрдИ рдереА рдпрд╛ рдирд╣реАрдВ, рдЬрдмрдХрд┐ рдЬреАрдердм рдПрдХреНрд╢рди рд╕реЙрд▓реНрдпреВрд╢рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдХрд╣рддрд╛ рд╣реИ ред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬреАрдердм рдПрдХреНрд╢рди рд╕рд╣реА рд╣реИ рдФрд░ рд╣рдорд╛рд░рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди рдЗрд╕рдХреА рдХрд╡рд░реЗрдЬ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдЧрд▓рдд рдмрддрд╛ рд░рд╣рд╛ рд╣реИ
  • рд╕реНрд╡рдпрдВ рдХреЛ рдзреНрдпрд╛рди рджреЗрдВ - рдореЗрд░реЗ рдкрд╛рд╕ --exclude src/arch-syscall-check.c lcov рдзреНрд╡рдЬ рдХрд╛рд░реНрдп рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреЛрдИ рд╕реБрд░рд╛рдЧ рдирд╣реАрдВ рдХреНрдпреЛрдВ

MacOS рдкрд░ Vagrant рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

MacOS рдкрд░ Vagrant рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдпрд╣ рдореБрджреНрджрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рд╕реАрдЖрдИ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рд╕реЗ рдЧрд┐рдЯрд╣рдм рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рди рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд╛рд╕ рдФрд░ libseccomp рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдХреЛрдЬрд╝ рдЧрд┐рдЯрд╣рдм рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рдпрд╣ рдХрд░реНрдиреЗрд▓ рд╕рдорд░реНрдерди рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЦрд░рд╛рдм рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ (рд╣рдорд╛рд░реЗ "рд▓рд╛рдЗрд╡" рдкрд░реАрдХреНрд╖рдг рд╕реАрдорд┐рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ)ред

рдпрд╣рд╛рдБ рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рд╕рдорд╛рдзрд╛рди рд╕реЗ рдХреБрдЫ рдорд╛рдореВрд▓реА рд╡рд┐рдЪрд▓рди рдХреЗ рд╕рд╛рде amd64 рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдЧреАрдердм рдПрдХреНрд╢рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдиреНрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рд╣реИред

рдЗрд╕ @drakenclimber рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕реАрдорд┐рдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕рдорд░реНрдерди рдмрд╣реБрдд рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕рдордп рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рд╢рд╛рдпрдж рд╣рдо рдЯреНрд░реИрд╡рд┐рд╕ рдХреЗ рд╕рд╛рде рддрдм рддрдХ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╡рд┐рдШрдЯрдирдХрд╛рд░реА рди рд╣реЛ рдЬрд╛рдП?

рдПрд▓рд╕реАрдУрд╡реА/рдХрд╡рд░рдСрд▓ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ; рдореИрдВрдиреЗ рдЕрддреАрдд рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдорддрднреЗрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХреА рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдирд╛рдмрд╛рд▓рд┐рдЧ рдереЗред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЯреНрд░реИрд╡рд┐рд╕ рдореЗрдВ рдПрд▓рд╕реАрдУрд╡реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЯреНрд░реИрд╡рд┐рд╕ рдмрд┐рд▓реНрдб рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрд▓рд╕реАрдУрд╡реА рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдЯреНрд░реИрд╡рд┐рд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХрд┐рд╕реА рднреА рдХреНрд░реЗрдбрд┐рдЯ рдХреЛ рд▓реАрдХ рдХрд┐рдП рдмрд┐рдирд╛? рдпрджрд┐ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рдФрд░ рдЯреНрд░реИрд╡рд┐рд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╕реНрдерд┐рд░рддрд╛ рд▓рд╛рдПрдЧрд╛, рдФрд░ рдЕрдЧрд░ рд╣рдо рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рд╕реЗ рд░рд╛рд╕реНрддрд╛ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред

MacOS рдкрд░ Vagrant рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдпрд╣ рдореБрджреНрджрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рд╕реАрдЖрдИ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рд╕реЗ рдЧрд┐рдЯрд╣рдм рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рди рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд╛рд╕ рдФрд░ libseccomp рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдХреЛрдЬрд╝ рдЧрд┐рдЯрд╣рдм рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рдпрд╣ рдХрд░реНрдиреЗрд▓ рд╕рдорд░реНрдерди рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЦрд░рд╛рдм рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ (рд╣рдорд╛рд░реЗ "рд▓рд╛рдЗрд╡" рдкрд░реАрдХреНрд╖рдг рд╕реАрдорд┐рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ)ред

рдореИрдВ рдЧрд┐рдЯрд╣рдм рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдХрд╛рдлреА рдкрд░рд┐рдЪрд┐рдд рд╣реВрдВред рд╡реЗ macOS рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (рджреЗрдЦреЗрдВ: https://github.com/actions/virtual-environments#available-environments)ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, macOS рдПрдХрдорд╛рддреНрд░ рдРрд╕рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ рдЬреЛ Vagrant рдФрд░ VirtualBox рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ: https://github.com/actions/virtual-environments/issues/433)ред

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

рдпрд╣ рд╕рд┐рд░реНрдл рдореЗрд░реЗ рджреЛ рд╕реЗрдВрдЯ рд╣реИ :)

рдзрдиреНрдпрд╡рд╛рдж @ oxr463 , рдЬреАрдПрдЪ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВ рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдмрдВрдзрди рдЙрдкрд░рд┐ рдирд╣реАрдВ рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмрд╛рдд рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рдХрднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реА рдЯреНрд░реИрд╡рд┐рд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд▓реНрдХреА рд╣реИ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдо рдЯреНрд░реИрд╡рд┐рд╕ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рдирд╣реАрдВ рднрд╛рдЧреЗрдВрдЧреЗ рдЬреЛ рдХреБрдЫ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдиреЗ рджреЗрдЦреА рд╣реИрдВред

рдЗрд╕ @drakenclimber рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕реАрдорд┐рдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕рдорд░реНрдерди рдмрд╣реБрдд рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕рдордп рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рд╢рд╛рдпрдж рд╣рдо рдЯреНрд░реИрд╡рд┐рд╕ рдХреЗ рд╕рд╛рде рддрдм рддрдХ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╡рд┐рдШрдЯрдирдХрд╛рд░реА рди рд╣реЛ рдЬрд╛рдП?

рд╣рд╛рдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдЙрддреНрддрд░ рд╣реИред

рдПрд▓рд╕реАрдУрд╡реА/рдХрд╡рд░рдСрд▓ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ; рдореИрдВрдиреЗ рдЕрддреАрдд рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдорддрднреЗрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХреА рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдирд╛рдмрд╛рд▓рд┐рдЧ рдереЗред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЯреНрд░реИрд╡рд┐рд╕ рдореЗрдВ рдПрд▓рд╕реАрдУрд╡реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЯреНрд░реИрд╡рд┐рд╕ рдмрд┐рд▓реНрдб рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрд▓рд╕реАрдУрд╡реА рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдЯреНрд░реИрд╡рд┐рд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХрд┐рд╕реА рднреА рдХреНрд░реЗрдбрд┐рдЯ рдХреЛ рд▓реАрдХ рдХрд┐рдП рдмрд┐рдирд╛? рдпрджрд┐ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рдФрд░ рдЯреНрд░реИрд╡рд┐рд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╕реНрдерд┐рд░рддрд╛ рд▓рд╛рдПрдЧрд╛, рдФрд░ рдЕрдЧрд░ рд╣рдо рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рд╕реЗ рд░рд╛рд╕реНрддрд╛ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рдБ, рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ рдЕрдВрдХ # 309 рдмрдирд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХреЛ рд╕реМрдВрдкрд╛ред рдореИрдВ рдЗрд╕реЗ рдЕрдЧрд▓реЗ рдПрдХ рдпрд╛ рджреЛ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рдж

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

рдзрдиреНрдпрд╡рд╛рдж, @ oxr463ред рдореБрдЭреЗ рдпрд╣ рднреА рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЙрд╕ рд░рд╛рд╕реНрддреЗ рдкрд░ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдкрдбрд╝реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИрдВред

@drakenclimber рдореИрдВ рдЗрд╕реЗ рдПрдХ рд░рд┐рд▓реАрдЬ рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЛ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП "рдмреНрд░реЗрдХ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдкрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдЕрдЧрд░ рдЖрдк рдЕрд╕рд╣рдордд рд╣реИрдВ рддреЛ рдЪрд┐рд▓реНрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдпрд╛ рддрджрдиреБрд╕рд╛рд░ рд▓реЗрдмрд▓ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВред

@drakenclimber рдореИрдВ рдЗрд╕реЗ рдПрдХ рд░рд┐рд▓реАрдЬ рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЛ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП "рдмреНрд░реЗрдХ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдкрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдЕрдЧрд░ рдЖрдк рдЕрд╕рд╣рдордд рд╣реИрдВ рддреЛ рдЪрд┐рд▓реНрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдпрд╛ рддрджрдиреБрд╕рд╛рд░ рд▓реЗрдмрд▓ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВред

рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

@drakenclimber рдПрдХ рдмрд╛рдд рдореЗрд░реЗ рд╕рд╛рде рд╣реБрдИ - рд╣рдореЗрдВ travis-ci.org рд╕реЗ travis-ci.com рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ ".org" рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ "рд╕рдкреНрддрд╛рд╣ рдХреЗ рднреАрддрд░" рджреВрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдУрд╣! рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ред рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рдЗрд╕реЗ рдЕрдЧрд▓реЗ рд╣рдлреНрддреЗ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕