рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╡рд╛рд▓ рдерд╛: рдлреНрд░рдВрдЯ-рдПрдВрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рдФрд░ рддреНрд╡рд░рд┐рдд рд╣реИ?
рд╣рдордиреЗ рдЬреЗрдирдХрд┐рдВрд╕ рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ, рд╡реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рдФрд░, рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди рд╣реИрдВред рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕реЗ рдЙрдард╛рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдбреЗрдврд╝ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдореЗрдореЛрд░реА рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ред рдпрд╣ рдПрдХ рдРрд╕реА рдЦреБрд╢реА рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП 500 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред
рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдореАрдирд╛ред рдпрд╣ рдПрдХ рдорд╣рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕реЗ рд░реВрдмреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдлреНрд░рдВрдЯ-рдПрдВрдб рд╣реИ? рд░реВрдмреА рд░рдЦреЛ рдФрд░ рдПрдХ рдмрдВрдбрд▓ рдмрдирд╛рдУ? рдирд╣реАрдВ, рдпрд╣ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИред рдореАрдирд╛, рдмреЗрд╢рдХ, рдмрдбрд╝реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЗрд╢рд╛рд░реЗ рдХреЗ NodeJS рдкрд░ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЕрдВрдд рдореЗрдВ, рд╣рдордиреЗ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рд╣рдореЗрдВ рдкрд░реЗрд╢рд╛рди рдХрд░ рджрд┐рдпрд╛ред рдФрд░ рд╣рдо рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЦреБрдж рдХреА рдЫреЛрдЯреА рд╕реЗрд╡рд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдЖрдП, рдЬреЛ рд╣реЛрдЧрд╛:
- npm рдкреИрдХреЗрдЬ
- рдПрдХ рдЫреЛрдЯрд╛ рдФрд░ рд╕рд░рд▓ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ
- рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 10 рдорд┐рдирдЯ рдФрд░ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП 5 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓реЗрдВ
- рдПрдХ рд░рд┐рд▓реАрдЬ рд╕рд┐рд╕реНрдЯрдо рд╣реИ (рдпрджрд┐, рд╕рдм рдХреЗ рдмрд╛рдж, рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЛрдИ рдХрд╣рддрд╛ рд╣реИ "рдпрд╣ рд╣реИ"
рдЯреВрдЯ рдЧрдпрд╛, рддреЛ рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдкрд┐рдЫрд▓реА рд░рд┐рд▓реАрдЬ рдкрд░ рд▓реМрдЯ рд╕рдХрддреЗ рд╣реИрдВ)
рдФрд░ рд╣рдордиреЗ
рд░реВрдиреА рдХреЛ рдмрдирд╛рдпрд╛ - рдлреНрд░рдВрдЯ-рдПрдВрдб рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрдкрдХрд░рдгред
рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реА рдкрд░рд┐рдирд┐рдпреЛрдЬрди рддреАрди рдХрдорд╛рдВрдб рд╣реИрдВ:
init - рдПрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдбрд╛рд▓реЗрдВ
рд╕реЗрдЯрдЕрдк - рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдБ
рддреИрдирд╛рдд - рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВ
рдФрд░ рд╡рд╣ рд╕рдм рд╣реИ!
рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдиреЗ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ! рдЕрдм рдПрдХ рдЯреАрдо рдореЗрдВ рддреИрдирд╛рддреА рд╣реЛрддреА рд╣реИред рддреНрд╡рд░рд┐рдд рдФрд░ рдЖрд╕рд╛рдиред рдЬрдм рдирдП рдбреЗрд╡рд▓рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рджреЗрд╡ / рдордВрдЪ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд▓реЛрдЧ рдЦреБрдж рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХреЗрдВред рдЬреВрдирд┐рдпрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рднреА рдЗрд╕реЗ рдЙрдкрдпреЛрдЧреА рдкрд╛рдПрдВрдЧреЗ, рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рд╕реАрдорд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╡реЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреНрдп рдЬреНрдЮрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рддрдХрдиреАрдХреА рднрд╛рдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ (рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдореИрдиреБрдЕрд▓
рдЬреАрдердм рдкрд░ рд╣реИ)ред Runy рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рд╣реИрдВ: init, setup, рддреИрдирд╛рдд, рдЕрдирд▓реЙрдХ, рд░реЛрд▓рдмреИрдХред
Init
рдХрдорд╛рдВрдб рдордВрдЧрд▓рд╛рдЪрд░рдг рд╕реНрдерд╛рди рдкрд░ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо ssh- рдПрдЬреЗрдВрдЯ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рднреА рдкрд╛рд╕рд╡рд░реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
// runy.js module.exports = { host: '0.0.0.0', // username: 'username', // port: 22, // remotePath: '/your/project/path', // git: 'link-to-your-git-repository', // ( ssh) agent: process.env.SSH_AUTH_SOCK, // commands: [ // 'npm install', 'npm run build', ], };
рд╕реЗрдЯрдЕрдк
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрде рдкрд░, рдпрд╣ рд░рд┐рд▓реАрдЬрд╝ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рддрд╛ рд╣реИ (рдпрд╣ рдирдВрдмрд░ 1, 2, 3, рдЖрджрд┐ рдкрд░ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ) рдФрд░ .current.release рдлрд╝рд╛рдЗрд▓ (рд╡рд░реНрддрдорд╛рди рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрдЦреНрдпрд╛ рдЗрд╕рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ)ред
рддреИрдирд╛рддреА
рдЗрд╕ рдЯреАрдо рдореЗрдВ рдХреБрдЫ рд╕реБрд░рдХреНрд╖рд╛ рд╣реИ, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдПрдХ рддреИрдирд╛рддреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЯреАрдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИред рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдирд┐рд░реНрднрд░рддрд╛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдлрд╝рд╛рдЗрд▓ (рдЖрджреЗрд╢реЛрдВ) рд╕реЗ рдЖрдкрдХреЗ рдЖрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддрд╛ рд╣реИ, рдПрдХ рдирдпрд╛ рд░рд┐рд▓реАрдЬрд╝ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдмрд╕-рдирд┐рд░реНрдорд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд░рд┐рд▓реАрдЬрд╝ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ (3 рд░рд┐рд▓реАрдЬрд╝ рдЕрдм рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ), рдмрдирд╛рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ (рд╡рд░реНрддрдорд╛рди рд░рд┐рд▓реАрдЬрд╝ рд╣рдореЗрд╢рд╛ рдЗрд╕ рдкрде рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ рдЖрдкрдХрд╛ рд░рд┐рдореЛрдЯ-рдкрде / рд╡рд░реНрддрдорд╛рди), рд░рд┐рд▓реАрдЬрд╝ рдЕрдВрдХ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИред
рдЕрдирд▓реЙрдХ
рдЙрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рддреИрдирд╛рдд рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдлрд╝рд╛рдЗрд▓ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рдордп рднреА рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрдорд╛рдВрдб рдореМрдЬреВрдж рд╣реИред
рд░реЛрд▓рдмреИрдХ
рдкрд┐рдЫрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред
PS рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рдЖрдк
рдпрд╣рд╛рдВ рдХрд╛рд░реНрдп рдмрдирд╛ / рдХрд░ рдХреЗ рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддреЗ
рд╣реИрдВ ред
рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХреА рддреИрдирд╛рддреА рдХреЛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рддреЗрдЬрд╝ рдмрдирд╛рдиреЗ рджреЗрдВред