рдордИ 2019 рдореЗрдВ, GitHub рдиреЗ рдкреИрдХреЗрдЬ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗрд╡рд╛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдШреЛрд╖рдгрд╛ рдХреА ред рдЗрд╕рдХреЗ рдмрд╛рдж, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЧрд╕реНрдд рдореЗрдВ, рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рд╕реАрдЖрдИ / рд╕реАрдбреА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЧрдИ рдереА ред
рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рддрд░рд╣ рдХреА рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧреАрдерд╣рдм рдкрд░ рдПрдХ рдЫреЛрдЯреА рд╕реА рдкрд╛рд▓рддреВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпреЗ рдХрд┐рд╕ рддрд░рд╣ рдХреА рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ?
GitHub Actions рдПрдХ рдРрд╕рд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб GitHub рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЯреНрд░реИрд╡рд┐рд╕реА, рд╕рд░реНрдХрд┐рд▓рд╕реАрдЖрдИ рдФрд░ рдХрдИ рдЕрдиреНрдп рдореБрдлреНрдд рд╕реАрдЖрдИ / рд╕реАрдбреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЛ рдПрдХреНрд╢рди рдХреЗ рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреНрд░рддрд┐рдпреЛрдЧреА рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖред
GitHub рдкреИрдХреЗрдЬ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдХреЗрдВрджреНрд░реАрдп рднрдВрдбрд╛рд░ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рдкрд╛рдВрдЪ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рд╣реИрдВред
рд╕рдорд░реНрдерд┐рдд рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдХрд▓рд╛рдХрд╛рд░реА рдХреЗ рдкреНрд░рдХрд╛рд░
рдпрд╣ рдПрдХ рдЬрдЧрд╣ рдкрд░ рд╕рднреА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рд░рдЦрдиреЗ рдХрд╛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЕрд╡рд╕рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдЖрдкрдХреЗ Nexus рдпрд╛ Artifactory рд╕рд░реНрд╡рд░ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреА рдЬрд╛рддреА рд╣реИред
GitHub GitLab рдХреЗ рд╕рдорд╛рди рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдХрд╣реАрдВ-рдХрд╣реАрдВ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, GitLab рдЕрднреА рддрдХ NuGet рд╕рдВрдХреБрд▓ рдФрд░ рд░реВрдмреА рд░рддреНрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдкрд╣рд▓реЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╛рд╣рд░реА рдПрдХреАрдХрд░рдг рдХреЛ GitHub рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдерд╛, рддреЛ рдЕрдм рд╕рднреА рдЕрдВрдбреЗ рдПрдХ рдЯреЛрдХрд░реА рдореЗрдВ рд╣реИрдВред рдпрд╣рд╛рдВ рд╕рднреА рдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рджреЗрдВ рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдпрд╛ рдмреБрд░рд╛, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдХреИрд╕реЗ рдХрд░реЗрдВ рдХреЛрд╢рд┐рд╢?
рджреЛрдиреЛрдВ рд╕реЗрд╡рд╛рдПрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмреАрдЯрд╛ рдореЛрдб рдореЗрдВ рд╣реИрдВ, рдЖрдк рдЗрди рдкреГрд╖реНрдареЛрдВ рдкрд░ рдмреАрдЯрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдкреНрд░рд╡рд╛рд╕рди рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдореИрдВрдиреЗ рдЕрдкрдиреА рдХрдИ рдкрд╛рд▓рддреВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдХреНрд░рдорд╢рдГ рдЯреНрд░реИрд╡рд┐рд╕реАрдЖрдИ рдФрд░ рдбреЙрдХрд░рд╣рдм рд╕реЗ рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рдкреИрдХреЗрдЬ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ред
рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреИрд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдмрд╕реЗ рдЖрдо рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рдПрд▓рдИрдЯреАрдПрдХреНрд╕-рдХреЛрдб, рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (2 рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓реЗрдВ), рдЙрдиреНрд╣реЗрдВ рдЧрд┐рдЯрд╣рдм рд░рд┐рд▓реАрдЬ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред LaTeX рд╕рдВрдХреБрд▓ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдбрд╛рдЙрдирд▓реЛрдб рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдбреЙрдХрдлрд╛рдЗрд▓ рд▓рд┐рдЦрд╛, рддрд╛рдХрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдУрдПрд╕ рдХреЗ рддрд╣рдд рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХреЗрдВред
рдкреИрдХреЗрдЬ рд░рдЬрд┐рд╕реНрдЯреНрд░реА
рдбреЙрдХрд░рд╣рдм рдХреЗ рдмрдЬрд╛рдп рдкреИрдХреЗрдЬ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рджреЛ рд╕рд░рд▓ рдХрджрдо рдЙрдард╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо GitHub рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдПрдХ рдЯреЛрдХрди рдмрдирд╛рддреЗ рд╣реИрдВ (рдЯреЛрдХрди рдореЗрдВ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдЯреЛрдХрди рдХреНрд░рд┐рдПрд╢рди рдкреЗрдЬ
рдФрд░ рдлрд┐рд░ рд╣рдо рдирд┐рд░реНрдорд┐рдд рдЯреЛрдХрди рдФрд░ рдкреБрд╢ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рд╕рд░рд▓ рд╣реИ:
docker login docker.pkg.github.com --username amet13 docker tag docker-latex:0.0.1 docker.pkg.github.com/amet13/master-thesis/docker-latex:0.0.1 docker push docker.pkg.github.com/amet13/master-thesis/docker-latex:0.0.1
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ, рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ GitHub рдкрд░ рдЕрдкрдиреЗ рдЙрдкрдирд╛рдо рдХреЛ рдирд┐рдЪрд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдбреЛрдХрд░ рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА:
Error parsing reference: "docker.pkg.github.com/Amet13/master-thesis/docker-latex:0.0.1" is not a valid repository/tag: invalid reference format: repository name must be lowercase
рдпрд╣рд╛рдБ рдпрд╣ GitHub рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

рдкреИрдХреЗрдЬ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкреГрд╖реНрда рдбреЙрдХрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП
рдирд╡реАрдирддрдо рдЫрд╡рд┐ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбрд╛рдЙрдирд▓реЛрдб рдЖрдБрдХрдбрд╝реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдбреЛрдХрд░ рдкрд░рдд рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдЗрддрд┐рд╣рд╛рд╕ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдХреНрд░рд┐рдпрд╛
рдХреНрд░рд┐рдпрд╛рдПрдБ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХрднреА рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реАрдЖрдИ / рд╕реАрдбреА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдХреНрд░рд┐рдпрд╛рдПрдБ рдореЗрдВ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдбрд┐рдХреНрд▓реЗрд░реЗрдЯрд┐рд╡ YAML рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ HCL рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ (рдореИрдВ рдЬрд╛рдирдмреВрдЭрдХрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ):
- рд╡рд░реНрдХрдлрд╝реНрд▓реЛ - рдПрдХ рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЬреАрд╡рди рдЪрдХреНрд░ (рдмрд┐рд▓реНрдб, рдЯреЗрд╕реНрдЯ, рдкреИрдХреЗрдЬ, рд░рд┐рд▓реАрдЬрд╝, рддреИрдирд╛рддреА) рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреА рд╣реИ
- рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдлрд╝рд╛рдЗрд▓ - рд╡рд╣ рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕рдореЗрдВ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдпрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдЬрдбрд╝ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред
.github/workflows/
- рдЬреЙрдм рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХрд╛ рд╣рд░ рд░рди рд╣реИ, рдЬреЙрдм рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИ, рдПрдХ рд╕рдордп рдкрд░ рдмрд╣реБрдд рд╕реЗ рдЬреЙрдм рд╢реБрд░реВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
- рд╕реНрдЯреЗрдк - рдкреНрд░рддреНрдпреЗрдХ рдЬреЙрдм рдореЗрдВ рдПрдХ рд╕реНрдЯреЗрдк рд╣реЛрддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреЗрдк рдкрд░ рдЖрдк рдХрдорд╛рдВрдб рдпрд╛ рдПрдХреНрд╢рди рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ
- рдХреНрд░рд┐рдпрд╛ - рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ "рдкреНрд▓рдЧ-рдЗрди", рдХрдИ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рднрдпрд╛рдирдХ-рдХреНрд░рд┐рдпрд╛ рднрдВрдбрд╛рд░ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ
- рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг - рд╡рд╣ рд╡рд╛рддрд╛рд╡рд░рдг рдЬрд┐рд╕ рдкрд░ рдЕрдпреНрдпреВрдм рдЪрд▓рддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ, рдореИрдХрдУрдПрд╕ рдпрд╛ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХ рдЖрднрд╛рд╕реА рдорд╢реАрди рд╣реИ)
- рдПрдХ рдиреМрдХрд░реА рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдирд░ рдПрдХ рддреИрдирд╛рдд рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ, рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЬреЙрдм рд░рдирд░ рдкрд░ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ
- рдШрдЯрдирд╛ - рдПрдХ рдШрдЯрдирд╛ рдЬреЛ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреБрд╢, рдкреБрд▓ рдЕрдиреБрд░реЛрдз, рд╡реЗрдмрд╣реВрдХ, рдХреНрд░реЛрди рдЬреЙрдм, рдЖрджрд┐ред
- рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ - рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ (рдмрд╛рдпрдиреЗрд░реА, рдЪрд┐рддреНрд░, рд▓реЙрдЧ, рдЖрджрд┐)

рдпрд╣ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдореЗрдВ рдиреМрдХрд░реА рд╕реВрдЪреА рдкреГрд╖реНрда рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
рд╕реАрдорд╛рдПрдБ рдФрд░ рдирд┐рд╖реЗрдз:
- рдкреНрд░рддрд┐ рднрдВрдбрд╛рд░ 20 рд╡рд░реНрдХрдлрд╝реНрд▓реЛ
- рднрдВрдбрд╛рд░ рдореЗрдВ рд╕рднреА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рдШрдВрдЯреЗ 1000 рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдз
- рдЕрдзрд┐рдХрддрдо рдиреМрдХрд░реА рдХрд╛ рд╕рдордп - 6 рдШрдВрдЯреЗ
- 20 рдиреМрдХрд░рд┐рдпрд╛рдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИрдВ (рд╕рднреА рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдХреЗ рд▓рд┐рдП)
- рдпрд╣ рдХреНрд░рд┐рдкреНрдЯреЛрдХреНрдпреВрд░реЗрдВрд╕реА рдЦрдирди рдФрд░ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЗрд╕ рд▓рд┐рдВрдХ рдкрд░ рд╕рдмрд╕реЗ рд╡рд░реНрддрдорд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдФрд░ рдпрд╣рд╛рдБ рдПрдХ рдиреМрдХрд░реА рдХрд╛ рд▓реЙрдЧ рд╣реИ
рдЙрджрд╛рд╣рд░рдг
рдЖрдЗрдП рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ, рдпрд╣рд╛рдВ рдореЗрд░рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд╣рдо рдЗрд╕реЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред
рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдмрддрд╛рдПрдВ рдХрд┐ рдХрд┐рд╕ рдЯреНрд░рд┐рдЧрд░ рдкрд░ рдЖрдЧ рд▓рдЧрдиреА рдЪрд╛рд╣рд┐рдП ( рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╕рднреА рдЯреНрд░рд┐рдЧрд░ рдХреА рд╕реВрдЪреА рд╡рд░реНрдгрд┐рдд рд╣реИ):
name: master-thesis on: [push]
рдЬрд┐рд╕ рдкрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдЬреЙрдм рдЪрд▓рд╛рддреЗ рд╣реИрдВ:
jobs: build: # ubuntu-latest, ubuntu-18.04, or ubuntu-16.04 # windows-latest, windows-2019, or windows-2016 # macOS-latest or macOS-10.14 runs-on: ubuntu-latest
рдкрд╣рд▓рд╛ рдЪрд░рдг, name:
рдЪрд░рдг рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ (рд╡реИрдХрд▓реНрдкрд┐рдХ), рдФрд░ uses:
рд╣рдо рдХрд┐рд╕ рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░реЗрдВ:
steps: - name: Checkout repo uses: actions/checkout@v1
рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, рд╣рдо рдПрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╣рдорд╛рд░реА рдХрдорд╛рдВрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЬрд╣рд╛рдВ рд╣рдо рдкреИрдХреЗрдЬ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рдбреЙрдХрд░ рдЫрд╡рд┐ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЫрд╡рд┐ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдзрдХреЗрд▓ рджреЗрддреЗ рд╣реИрдВред env:
рдмреНрд▓реЙрдХ рдореЗрдВ env:
рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд░рд╣рд╕реНрдп рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ:
- name: Build docker image and push it to the registry env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} DOCKER_IMAGE_ORIGIN: "docker.pkg.github.com/amet13/master-thesis/docker-latex" run: | # Pull submodules git submodule init git submodule update --remote # Login to GitHub Packages and build Docker image docker login docker.pkg.github.com -u amet13 -p ${GITHUB_TOKEN} docker pull ${DOCKER_IMAGE_ORIGIN}:latest docker build -t ${DOCKER_IMAGE_ORIGIN}:${GITHUB_SHA} . # Generate PDF artifacts docker run --rm -i \ -v ${PWD}:/master-thesis:Z ${DOCKER_IMAGE_ORIGIN}:${GITHUB_SHA} \ bash -c "latexmk -xelatex -synctex=1 -jobname=master-thesis main.tex" docker run --rm -i \ -v ${PWD}:/master-thesis:Z ${DOCKER_IMAGE_ORIGIN}:${GITHUB_SHA} \ bash -c "cd presentation/ && latexmk -xelatex -synctex=1 -jobname=presentation main.tex" # Publish Docker image to GitHub Packages (with latest tag) docker tag ${DOCKER_IMAGE_ORIGIN}:${GITHUB_SHA} ${DOCKER_IMAGE_ORIGIN}:latest docker push ${DOCKER_IMAGE_ORIGIN}:${GITHUB_SHA} docker push ${DOCKER_IMAGE_ORIGIN}:latest
рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдПрдХ рдПрдХреНрд╢рди рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбреЙрдХрд░ рдХрдорд╛рдВрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЯреИрдЧ рдФрд░ рдкреБрд╢ рдХрд░реЗрдЧрд╛ред

рдЬреАрдердм рдЯреЛрдХрди рдпреБрдХреНрдд рдПрдХ рд░рд╣рд╕реНрдп рдЬреЛрдбрд╝рдирд╛
PDFs рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдЕрдЧрд▓рд╛ рдХрджрдо GitHub рдкрд░ рдПрдХ рд░рд┐рд▓реАрдЬ рдмрдирд╛рдирд╛ рд╣реИ рдФрд░ рдЗрд╕ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдПрдХрддреНрд░рд┐рдд рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реИред рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд░рд┐рд▓реАрдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рддреГрддреАрдп-рдкрдХреНрд╖ рдПрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ if:
рдмреНрд▓реЙрдХ рдореЗрдВ рдЖрдк рдЪрд░рдг рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд░реНрдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдХреЗрд╡рд▓ рдЯреИрдЧ рдмрдирд╛рддреЗ рд╕рдордп:
- name: Create GitHub release with artifacts uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: files: | master-thesis.pdf presentation/presentation.pdf name: "Build ${GITHUB_SHA}" env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
рдкрд░рд┐рдгрд╛рдо
рдмреАрдЯрд╛ рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рджреЛрдиреЛрдВ рд╕реЗрд╡рд╛рдПрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрдИ рдЪреАрдЬреЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреАред
рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреЛрдИ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмреИрд╕рд╛рдЦреА рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЭреЗ YAML рдХреЗ рдкрдХреНрд╖ рдореЗрдВ HCL рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП GitHub рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд╕рдВрдж рдЖрдпрд╛ред рдореБрдЭреЗ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рднреА рдкрд╕рдВрдж рдЖрдпрд╛, рдЬреЛ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реАрдорд╛рдПрдВ рд╣реИрдВ (рдЕрднреА рдХреЗ рд▓рд┐рдП), рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЪрд▓рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, GitHub рдкрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рд░рд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рдЧреБрдЪреНрдЫрд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдордзреНрдпрдо рд╣реИ ред