рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред
рдХрд╛рдлреА рд╕рдордп рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдиреЗ рдПрдХ рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ - рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╣реБрдХ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рдХреЛрдб рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реИ, рдПрдХ рдЕрд▓рдЧ HTML рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рд▓рд┐рдЦрддрд╛ рд╣реИ, рдЬреЛ рд╡реЗрдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдерд╛ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдлрд┐рд░ рдореБрдЭреЗ рд▓реЙрдХ рд╕рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рддрд╛рдХрд┐ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛ рдЯреЗрд╕реНрдЯ рдПрдХ рд╕рд╛рде рд╢реБрд░реВ рди рд╣реЛрдВ, рдЖрджрд┐ред
рдЕрдВрдд рдореЗрдВ, рдХрд╛рдо рдХреЗ рд╕рдордп рдХрд╛ рдПрдХ рдореВрд░реНрдд рд╣рд┐рд╕реНрд╕рд╛ рдЗрд╕рдХреЗ рд╕рдорд░реНрдерди рдореЗрдВ рдЬрд╛рдиреЗ рд▓рдЧрд╛, рдЬрд┐рд╕рдиреЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд╛рджрдЧреА рдХреЗ рд╕рднреА рдлрд╛рдпрджреЛрдВ рдХреЛ рд╢реВрдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп
рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЬреЗрдирдХрд┐рдиреНрд╕ рдХреЛ рдирдИ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, django рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред рдЬреЛ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдмрд┐рд▓реНрд▓реА рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рдЬреЗрдирдХрд┐рдВрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдЙрдмрдВрдЯреВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ
, рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреА рдФрд░ рд╕реНрд░реЛрдд рдЬреЛрдбрд╝реЗрдВ:
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - vi /etc/apt/sources
рдЕрдиреНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВ:
https://wiki.jenkins-ci.org/display/JENKINS/Installing+JenkinsрддреЛ:
apt-get update apt-get install jenkins
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж,
рдЬреЗрдирдХрд┐рдВрд╕ рдкреЛрд░реНрдЯ 8080 рдкрд░ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдФрд░ рд╕реБрдиреЗрдВрдЧреЗ, рдкреЛрд░реНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП,
/ etc / default / jenkins рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
HTTP_PORT рдЪрд░ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ (рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЕрдиреНрдп рдЪрд░)
рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрдирд╛
рдЬреЗрдирдХрд┐рдиреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЕрдм рдЖрдк рдЖрд╡рд╢реНрдпрдХ рдкреНрд▓рдЧ-рдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореЗрдиреВ рдкрд░ рдЬрд╛рдПрдВ
рдЬреЗрдирдХреАрдВрд╕ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ -> рдкреНрд▓рдЧрд┐рди рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ ,
рдЙрдкрд▓рдмреНрдз рдЯреИрдмред рд╡реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЪреБрдиреЗрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рдХреЛрдмреЗрд░рдЯреБрд░рд╛ рдкреНрд▓рдЧрд┐рди (рдХреЛрдб рдХрд╡рд░реЗрдЬ)
- рдЙрд▓реНрд▓рдВрдШрди рдкреНрд▓рдЧрд┐рди (рдХреЛрдб рд░рд┐рдкреЛрд░реНрдЯ - pylint, pyflakes, pep8)
- Git / Mercurial / SVN Plugin - рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЪреВрдВрдХрд┐ рд╣рдо Git рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ GIT рдкреНрд▓рдЧрдЗрди рдХреЗ рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред
Django рдЬреЗрдирдХреАрдВрд╕
рдЬреЗрдирдХрд┐рдВрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде django рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо django-jenkins рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ (рд╡реИрд╕реЗ, рдЗрд╕рдХрд╛ рд▓реЗрдЦрдХ,
kmmbvnr , рд╣рдм рдкрд░ рдореМрдЬреВрдж рд╣реИ, рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдирдорд╕реНрдХрд╛рд░!)ред рдкреИрдХреЗрдЬ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдП рдЧрдП рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП xml- рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рднреА рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЗрди рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЛ рдлрд┐рд░ рдЬреЗрдирдХрд┐рдиреНрд╕ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╣реА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдерд╛рдкрдирд╛:
pip install django-jenkins pip install pep8 pip install pyflakes
рд╣рдорд╛рд░реЗ django рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝реЗрдВ:
INSTALLED_APPS += ('django_jenkins',) JENKINS_TASKS = ('django_jenkins.tasks.run_pylint', 'django_jenkins.tasks.run_pep8', 'django_jenkins.tasks.run_pyflakes', 'django_jenkins.tasks.with_coverage', 'django_jenkins.tasks.django_tests',)
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕
рдореИрдиреЗрдЬрдореЗрдиреНрдб рдЬреЗрдирдХреАрдВрд╕ рдЯреАрдо рд╣реИ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдЧреА рдФрд░ рдЬреЗрдирдХрд┐рдВрд╕ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдЧреАред рдЕрдм рдЖрдк рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░, рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ
рдмрд┐рд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдмрдирд╛рдИ рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рдЬреЗрдирдХреАрдВрд╕ рд╕реЗрдЯрдЕрдк
рд▓реЗрдЦ рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдореВрд▓ django-jenkins рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИ:
https://sites.google.com/site/kmmbvnr/home/django-hudson-tutorialрдЗрд╕рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ: рдирдИ рдиреМрдХрд░реА -> рдПрдХ рдлреНрд░реА-рд╕реНрдЯрд╛рдЗрд▓ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ
SCM рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛:
рдПрдХ
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕реВрдЪреА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдЬреЗрдирдХрд┐рдВрд╕
рд╕рдВрд╢реЛрдзрди рдХреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдВрдХ рджрд┐рдЦрд╛рдПрдЧрд╛ред
рд╣рдо рд╣рд░ рдЖрдзреЗ рдШрдВрдЯреЗ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП SCM рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ:
Django-jenkins рд╕реЗ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди рдЬреЛрдбрд╝реЗрдВ ( рдмрд┐рд▓реНрдб рдЪрд░рдг рдЬреЛрдбрд╝реЗрдВ -> рд╢реЗрд▓ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ ):
рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ рдХреЛрдмрд░реНрддреБрд░рд╛ рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдорд╛рд░реНрдЧ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:
рдкреНрд░рдХрд╛рд╢рд┐рдд JUnit рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдкрде рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:
рд░рд┐рдкреЛрд░реНрдЯ рдЙрд▓реНрд▓рдВрдШрди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдорд╛рд░реНрдЧ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдИрдореЗрд▓ рд╕реВрдЪрдирд╛рдПрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:
рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрд░реАрдХреНрд╖рдг рдПрдХреАрдХрд░рдг
рдЬреЗрдирдХрд┐рдВрд╕ рдореЗрдВ рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рд╣реЛ, рдореИрдВрдиреЗ рдЬреЛрдбрд╝рд╛
JjkinsTestRunner рд╡рд░реНрдЧ
django-selenium рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рдЕрдкрдиреЗ
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред
рдкрд░рд┐рдгрд╛рдо
рд╕рдм рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк
рдмрд┐рд▓реНрдб рдирд╛рдЙ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ:
рдФрд░ рдлрд┐рд░ рдХреБрдЫ рдмрдЧ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред