
Cum să începi cu Integrarea Continuă (CI) pentru Drupal 7
Integrarea Continuă (CI) ajută la automatizarea procesului de testare în dezvoltarea web Drupal 7. În timp ce comunitatea Drupal oferă numeroase resurse despre beneficiile CI, acest tutorial se concentrează pe stabilirea unei configurații complete CI pe CentOS 7. Vom parcurge configurarea Jenkins și implementarea testării de bază a site-ului Drupal.
Cerințe de sistem
Tutorialul nostru folosește CentOS 7 ca sistem de operare de bază. Să începem prin instalarea componentelor necesare.
Instalarea Java
Mai întâi, trebuie să instalăm Java, care este necesară pentru Jenkins:
yum install java -y
Instalarea Jenkins
# Adăugarea repository-ului Jenkins
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
# Importarea cheii repository-ului Jenkins
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
# Instalarea și configurarea Jenkins
yum install jenkins -y
chkconfig jenkins on
service jenkins start
Configurarea Firewall-ului
Pentru CentOS 7, vom configura firewalld pentru a permite accesul Jenkins. Este recomandat să restricționați accesul la IP-uri de încredere:
# Adăugarea IP-ului de încredere la zona firewall
firewall-cmd --permanent --zone=trusted --add-source=ADRESA_IP_DE_ÎNCREDERE
# Configurarea accesului la port
firewall-cmd --zone=trusted --add-port=8080/tcp --permanent
firewall-cmd --reload
# Verificarea configurației
firewall-cmd --get-active-zones
Configurarea Bazei de Date
Instalați și configurați MariaDB:
# Instalarea MariaDB
yum install mariadb-server
service mariadb start
chkconfig mariadb on
# Securizarea instalării
/usr/bin/mysql_secure_installation
Instalarea phpMyAdmin
# Instalarea repository-ului EPEL și phpMyAdmin
yum install epel-release
yum install phpmyadmin
# Configurarea controlului de acces
nano /etc/httpd/conf.d/phpMyAdmin.conf
Actualizați configurația phpMyAdmin pentru a restricționa accesul la IP-ul dvs.:
# Înlocuiți IP_UL_DVS cu IP-ul dvs. real
Require ip IP_UL_DVS
Allow from IP_UL_DVS
Reporniți Apache pentru a aplica modificările:
systemctl restart httpd.service
PHP și Instrumente de Dezvoltare
Instalați PHP și dependențele necesare:
yum install epel-release
yum install php php-devel php-gd php-ldap php-mysql php-pear php-mcrypt \
php-tidy php-xml php-xmlrpc php-mbstring php-snmp php-soap php-xml \
php-common curl curl-devel perl-libwww-perl ImageMagick libxml2 \
libxml2-devel mod_fcgid php-cli httpd-devel git
Instalarea Dependențelor de Dezvoltare
Configurați PEAR, Composer și alte instrumente:
# Instalarea PEAR și Phing
pear channel-discover pear.phing.info
pear install --alldeps phing/phing
pear install HTTP_Request2
# Instalarea Composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
# Instalarea Drush
pear channel-discover pear.drush.org
pear install drush/drush
Instalarea Instrumentelor de Calitate a Codului
Configurați Coder și PHP_CodeSniffer pentru Drupal 7:
# Instalarea Coder și PHP_CodeSniffer
composer global require drupal/coder:\<8
composer global require squizlabs/PHP_CodeSniffer:\<2
# Configurarea PHP_CodeSniffer
ln -s ~/.composer/vendor/bin/phpcs /usr/local/bin
ln -s ~/.composer/vendor/bin/phpcbf /usr/local/bin
phpcs --config-set installed_paths ~/.composer/vendor/drupal/coder/coder_sniffer
# Instalarea Drupal Coder
cd /root
wget http://ftp.drupal.org/files/projects/coder-7.x-2.4.tar.gz
tar xvf coder-7.x-2.4.tar.gz
Verificați instalarea:
phpcs --version
phpcs -i # Ar trebui să listeze Drupal în standardele disponibile
Configurarea Proiectului Jenkins
1. Accesați Jenkins la `http://hostname:8080`
2. Configurați setările de securitate:
- Activați securitatea
- Configurați autorizarea bazată pe matrice de proiect
- Creați un cont de administrator
3. Instalați plugin-urile necesare:
- Plugin Phing
- Plugin PHP
- Plugin Git (GitHub sau GitLab)
Crearea Primului Proiect
1. Creați un nou proiect freestyle numit "drupaltest"
2. Configurați structura spațiului de lucru:
```bash
cd /var/lib/jenkins/workspace/drupaltest
mkdir docroot scripts make reports
chown -R jenkins:jenkins *
chmod 0755 -R *
Crearea Scripturilor de Build
Creați scriptul de verificare a sintaxei PHP (`scripts/build-syntaxcheck.xml`):
<?xml version="1.0"?>
<project name="phpsyntaxcheck" default="syntaxcheck_php">
<target name="syntaxcheck_php" description="Run PHP syntax checking on the project docroot.">
<fileset dir="../docroot" id="phpfiles">
<include name="*.php" />
<include name="**/*.php" />
<include name="**/*.inc" />
<include name="**/*.module" />
<include name="**/*.install" />
<include name="**/*.profile" />
<include name="**/*.test" />
</fileset>
<phplint haltonfailure="true">
<fileset refid="phpfiles" />
</phplint>
</target>
</project>
Creați scriptul de verificare a standardelor de codare Drupal (`scripts/build-drupalstandards.xml`):
<?xml version="1.0"?>
<project name="phpcodesniffer" default="phpcs">
<target name="phpcs">
<fileset dir="../docroot" id="drupalfiles">
<include name="sites/all/modules/**/*.php" />
<include name="sites/all/modules/**/*.inc" />
<include name="sites/all/modules/**/*.module" />
<include name="sites/all/modules/**/*.install" />
<include name="sites/all/themes/**/*.php" />
<include name="sites/all/themes/**/*.inc" />
</fileset>
<phpcodesniffer standard="Drupal" format="checkstyle">
<fileset refid="drupalfiles" />
<formatter type="checkstyle" outfile="../reports/checkstyle.xml"/>
</phpcodesniffer>
</target>
</project>
Configurarea Build-ului Jenkins
1. Adăugați pași de build Phing:
- Primul target: `syntaxcheck_php` cu fișierul de build `$WORKSPACE/scripts/build-syntaxcheck.xml`
- Al doilea target: `phpcs` cu fișierul de build `$WORKSPACE/scripts/build-drupalstandards.xml`
2. Adăugați acțiune post-build:
- Configurați calea raportului Checkstyle: `reports/checkstyle.xml`
Și apăsați BUILD! Prima dvs. testare CI ar trebui să înceapă acum! Puteți verifica rezultatele build-ului în pagina de stare a proiectului și detaliile fiecărui build pe pagina Build în Console Output.
Note Importante
- S-ar putea să fie necesar să măriți limita de memorie PHP și timpul de execuție în php.ini pentru proiecte mai mari
- Testați întotdeauna configurația CI într-un mediu de dezvoltare mai întâi
- Întreținerea regulată a serverului CI este importantă pentru performanțe optime
- Luați în considerare implementarea implementării automate în iterațiile viitoare
