рдЬреЗрдирдХрд┐рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Symfony2 рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ

рдЬреЗрдиреНрдХрд┐рдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рдореНрдлрдиреА 2 рдкрд░ рдЖрдзрд╛рд░рд┐рдд PHP рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдореЗрд░реЗ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рджред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд┐рдореНрдлрдиреА 2.1 + рдЬреЗрдирдХреАрдВрд╕ + PHPUnit + PHPCodeSniffer + PHPMessDetector + PDepend рд╕реБрдЗрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕реЗрдЯрдЕрдк рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЫреЛрдЯрд╛ рд▓реЗрдЦ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ!


рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╕реЗрдмреЗрд╕реНрдЯрд┐рдпрди рдмрд░реНрдЧрдорди рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдЬреЗрдирдХрд┐рдВрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреЗрдирдХрд┐рдВрд╕ рдФрд░ рдкреАрдПрдЪрдкреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рдореНрдлрдиреА 2 рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реИред

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЗрдВрдХрд┐рдВрд╕ v.1.480.1 рдФрд░ рд╕рд┐рдореНрдлрдиреА v.2.1 рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ



рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЬреЗрдирдХрд┐рдВрд╕ (рдЖрд╡рд╢реНрдпрдХ рдЬреЗрдирдХреАрдВрд╕ рдкреНрд▓рдЧрдЗрдиреНрд╕) рдФрд░ рдЖрд╡рд╢реНрдпрдХ PHP рдЯреВрд▓реНрд╕ (рдЖрд╡рд╢реНрдпрдХ PHP рдЯреВрд▓реНрд╕) рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред

рдЬреЗрдирдХрд┐рдВрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП PHP рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛



рдкрд╣рд▓реЗ рдЪрд░рдг рдЗрд╕ рд▓реЗрдЦ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо config.xml , build.xml , phpunit.xml рдФрд░ рдЗрд╕ рд╕реНрд░реЛрдд рд╕реЗ рд▓реА рдЧрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ: github.com/xurumelous/symfony2-jenkins-template ред
  1. рдЕрдкрдиреЗ рдЬреЗрдирдХреАрдВрд╕ рд╕рд░реНрд╡рд░ рд╕реЗ jenkins-cli.jar рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:
    wget http://localhost:8080/jnlpJars/jenkins-cli.jar 
  2. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ:
     curl https://github.com/xurumelous/symfony2-jenkins-template/blob/master/config.xml | \ java -jar jenkins-cli.jar -s http://localhost:8080/jenkins create-job symfony2-php-template 
    рдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝реЗрдВ:
     cd $JENKINS_HOME/jobs mkdir symfony2-php-template cd symfony2-php-template wget https://github.com/xurumelous/symfony2-jenkins-template/blob/master/config.xml cd .. chown -R jenkins:jenkins symfony2-php-template/ 

  3. рдЬреЗрдирдХрд┐рдВрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬреЗрдирдХрд┐рдиреНрд╕ рд╕реАрдПрд▓рдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
     java -jar jenkins-cli.jar -s http://localhost:8080 reload-configuration 

  4. "рдирдИ рдиреМрдХрд░реА" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ;
  5. "рдиреМрдХрд░реА рдХрд╛ рдирд╛рдо" рджрд░реНрдЬ рдХрд░реЗрдВ;
  6. "рдореМрдЬреВрджрд╛ рдиреМрдХрд░реА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ" рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ "рдХреЙрдкреА рд╕реЗ" рдлрд╝реАрд▓реНрдб рдореЗрдВ " рд╕рд┐рдореНрдлрдиреА 2-рдкреАрдПрдЪрдкреА-рдЯреЗрдореНрдкрд▓реЗрдЯ " рдЯрд╛рдЗрдк рдХрд░реЗрдВ
  7. "рдУрдХреЗ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ;
  8. рдЕрдкрдиреЗ рдирдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдФрд░ рдЕрдиреНрдп рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб / рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред


рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг


  1. рд╕рд┐рдореНрдлрдиреА 2-рдЬреЗрдирдХрд┐рдВрд╕-PHP рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдорд╛рдирдХ рдЬреЗрдирдХрд┐рдВрд╕-PHP рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрджрд▓реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рд╣реИ - github.com/xurumelous/symfony2-jenkins-template :
    • рдЬреЗрдирдХрд┐рдВрд╕ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ [SYMFONY2_ROOT] / рдРрдк / рд╕рдВрд╕рд╛рдзрди / рдЕрдкрдиреЗ Symfony2 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рд▓реЗ рдЬрд╛рдПрдВ;
    • рдЕрдкрдиреЗ Symfony2 рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореВрд▓ рдореЗрдВ build.xml рдлрд╝рд╛рдЗрд▓ рд▓реЗ рдЬрд╛рдПрдБ;
    • phpunit.xml рдлрд╝рд╛рдЗрд▓ рдХреЛ [SYMFONY2_ROOT] / рдРрдк рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ рдпрд╛ рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рд▓реЙрдЧрд┐рдВрдЧ рдиреЛрдб рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрджрд┐ рдЖрдк рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдФрд░ рд▓реЙрдЧ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ;

  2. рдЕрдЧрд░ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ "PHP рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐: рдХреНрд▓рд╛рд╕ 'XSLTProcessor' /usr/share/php/TheSeer/fXSL/fxsltprocessor.php рд▓рд╛рдЗрди 58 рдкрд░ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ , рддреЛ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
     sudo apt-get install php5-xsl 
  3. рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рднреА рдорд┐рд▓ рд╕рдХрддреА рд╣реИ " PHP рдЪреЗрддрд╛рд╡рдиреА: рдЖрд╡рд╢реНрдпрдХрддрд╛ (/ var / lib / jenkins / jobs / TestJob / рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ / рдРрдк /../ рд╡рд┐рдХреНрд░реЗрддрд╛ / autoload.php): рд╕реНрдЯреНрд░реАрдо рдЦреЛрд▓рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓: рдРрд╕реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ / var / рдореЗрдВ рдирд╣реАрдВ lib / jenkins / jobs / TestJob / рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ / рдРрдк / autoload.php рдСрди рд▓рд╛рдЗрди 5 тАЭрдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рд╣рд╛рдиреБрднреВрддрд┐ v2.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдВрдЧреАрддрдХрд╛рд░ рдХреЛ рдЙрдбрд╝рд╛ рджреЗрддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
    • рдЕрдкрдиреЗ build.xml рдореЗрдВ рд╕рдВрдЧреАрддрдХрд╛рд░ рдХрджрдо рдЬреЛрдбрд╝реЗрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
    • рдпрджрд┐ рдЖрдкрдХреЛ рдХрдВрдкреЛрдЬрд░ рд╕реНрдЯреЗрдк рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХрдВрдкреЛрдЬрд╝рд░ рдкрд░ PHPunit рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ: рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ = "рдХрдВрдкреЛрдЬрд╝рд░" ;

  4. рдХрднреА-рдХрднреА рдЖрдкрдХреЛ "рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ" рдХрджрдо рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
     [exec] The deps file is not valid ini syntax. Perhaps missing a trailing newline? [exec] PHP Warning: parse_ini_file(/var/lib/jenkins/jobs/TestJob/workspace/deps): failed to open stream: No such file or directory in /var/lib/jenkins/jobs/TestJob/workspace/bin/vendors on line 69 
    рдЖрдк рдЗрд╕реЗ рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдХреЛ рдирд┐рдХрд╛рд▓ рдХрд░ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рдХреНрд░реЗрддрд╛ рдмрд┐рд▓реНрдб. xml рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмреНрд▓реЙрдХ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
  5. рдЕрдЧрд░ рдЖрдкрдХреЛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рд╕реНрдерд┐рддрд┐: 2 рдХреЛрдбрд╕реНрдирд┐рдлрд░ рд╕реНрдЯреЗрдк (phpcs) рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди, рдЖрдкрдХреЛ Symfony2 рдХреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдорд╛рдирдХ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕ рд╕рдВрд╕рд╛рдзрди рдкрд░ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
  6. "рдкреЛрд▓ рдПрд╕рд╕реАрдПрдо" рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдФрд░ рдиреАрдЪреЗ рд▓рд┐рдЦреЗрдВ: * / 5 * * * * (рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдХреЗ рдЖрдк рдЬреЗрдирдХрд┐рдиреНрд╕ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рдирдП рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП рд╣рд░ 5 рдорд┐рдирдЯ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдХрдорд┐рдЯ), рдЬреЗрдирдХрд┐рдВрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛)ред


рд╡рд╣ рд╕рдм рд╣реИ! рдЕрдм рдЖрдк рдЬреЗрдирдХрд┐рдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ PHP Symfony2 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ! рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рддреНрд░реБрдЯрд┐ (рдпрд╛ рд╕реБрдзрд╛рд░), рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ, рдпрд╛ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдиреНрдп рд╕реБрдЭрд╛рд╡ рд╣реИрдВ, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдпрд╣рд╛рдВ рдпрд╛ рдореВрд▓ рд▓реЗрдЦ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВред

рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ!

Source: https://habr.com/ru/post/In168383/


All Articles