Î N A P O I
Cum să începi cu Integrarea Continuă (CI) pentru Drupal 7

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