Z U R Ü C K
How to Get Started with Continuous Integration (CI) for Drupal 7

Wie Sie mit Continuous Integration (CI) für Drupal 7 beginnen

Continuous Integration (CI) hilft dabei, den Testprozess in der Drupal 7 Webentwicklung zu automatisieren. Obwohl die Drupal-Gemeinschaft zahlreiche Ressourcen über die Vorteile von CI bietet, konzentriert sich dieses Tutorial auf die Einrichtung einer vollständigen CI-Umgebung auf CentOS 7. Wir werden durch die Einrichtung von Jenkins gehen und das grundlegende Testen von Drupal-Seiten implementieren.

Systemvoraussetzungen

Unser Tutorial verwendet CentOS 7 als Basisbetriebssystem. Beginnen wir mit der Installation der notwendigen Komponenten.

Java installieren

Zuerst müssen wir Java installieren, das für Jenkins erforderlich ist:

yum install java -y

Jenkins installieren

# Jenkins Repository hinzufügen wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo # Jenkins Repository-Schlüssel importieren rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key # Jenkins installieren und konfigurieren yum install jenkins -y chkconfig jenkins on service jenkins start

Firewall konfigurieren

Für CentOS 7 konfigurieren wir firewalld, um Jenkins Zugang zu gewähren. Es wird empfohlen, den Zugang auf vertrauenswürdige IPs zu beschränken:

# Vertrauenswürdige IP zur Firewall-Zone hinzufügen firewall-cmd --permanent --zone=trusted --add-source=VERTRAUENSWÜRDIGE_IP_ADRESSE # Portzugriff konfigurieren firewall-cmd --zone=trusted --add-port=8080/tcp --permanent firewall-cmd --reload # Konfiguration überprüfen firewall-cmd --get-active-zones

Datenbank einrichten

Installieren und konfigurieren Sie MariaDB:

# MariaDB installieren yum install mariadb-server service mariadb start chkconfig mariadb on # Installation absichern /usr/bin/mysql_secure_installation

phpMyAdmin installieren

# EPEL Repository und phpMyAdmin installieren yum install epel-release yum install phpmyadmin # Zugriffskontrolle konfigurieren nano /etc/httpd/conf.d/phpMyAdmin.conf

Aktualisieren Sie die phpMyAdmin-Konfiguration, um den Zugriff auf Ihre IP zu beschränken:

# Ersetzen Sie IHRE_IP_ADRESSE durch Ihre tatsächliche IP Require ip IHRE_IP_ADRESSE Allow from IHRE_IP_ADRESSE

Starten Sie Apache neu, um die Änderungen anzuwenden:

systemctl restart httpd.service

PHP und Entwicklungstools

Installieren Sie PHP und die erforderlichen Abhängigkeiten:

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

Entwicklungsabhängigkeiten installieren

Richten Sie PEAR, Composer und andere Tools ein:

# Installieren Sie PEAR und Phing pear channel-discover pear.phing.info pear install --alldeps phing/phing pear install HTTP_Request2 # Installieren Sie Composer curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer # Installieren Sie Drush pear channel-discover pear.drush.org pear install drush/drush

Code-Qualitätstools installieren

Richten Sie Coder und PHP_CodeSniffer für Drupal 7 ein:

# Installieren Sie Coder und PHP_CodeSniffer composer global require drupal/coder:\<8 composer global require squizlabs/PHP_CodeSniffer:\<2 # Konfigurieren Sie 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 # Installieren Sie 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

Überprüfen Sie die Installation:

phpcs --version phpcs -i # Sollte Drupal in den verfügbaren Standards auflisten Einrichten des Jenkins-Projekts

1. Zugriff auf Jenkins unter `http://hostname:8080` 2. Sicherheitseinstellungen konfigurieren: - Sicherheit aktivieren - Projektbasierte Matrixberechtigung einrichten - Ein Administratorkonto erstellen 3. Erforderliche Plugins installieren: - Phing Plugin - PHP Plugin - Git Plugin (GitHub oder GitLab)

Ihr erstes Projekt erstellen

1. Erstellen Sie ein neues Freestyle-Projekt namens "drupaltest" 2. Richten Sie die Arbeitsbereichsstruktur ein:

```bash cd /var/lib/jenkins/workspace/drupaltest mkdir docroot scripts make reports chown -R jenkins:jenkins * chmod 0755 -R *

Erstellen von Build-Skripten

Erstellen Sie das PHP-Syntaxprüfungsskript (`scripts/build-syntaxcheck.xml`):

<?xml version="1.0"?> <project name="phpsyntaxcheck" default="syntaxcheck_php"> <target name="syntaxcheck_php" description="Führt die PHP-Syntaxprüfung auf dem Projekt-Docroot aus."> <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>

Erstellen Sie das Drupal-Coding-Standards-Prüfskript (`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>

Konfigurieren des Jenkins-Builds

1. Fügen Sie Phing-Build-Schritte hinzu: - Erstes Ziel: `syntaxcheck_php` mit Build-Datei `$WORKSPACE/scripts/build-syntaxcheck.xml` - Zweites Ziel: `phpcs` mit Build-Datei `$WORKSPACE/scripts/build-drupalstandards.xml`

2. Fügen Sie eine Post-Build-Aktion hinzu: - Konfigurieren Sie den Checkstyle-Berichtspfad: `reports/checkstyle.xml`

Und drücken Sie BAUEN! Ihr erster CI-Test sollte jetzt starten! Sie können Ihre Build-Ergebnisse auf der Statusseite des Projekts und die Details jedes Builds auf der Build-Seite in der Konsolenausgabe überprüfen.

Wichtige Hinweise

Für größere Projekte müssen Sie möglicherweise das PHP-Speicherlimit und die Ausführungszeit in php.ini erhöhen

Testen Sie Ihre CI-Konfiguration immer zuerst in einer Entwicklungsumgebung

Regelmäßige Wartung Ihres CI-Servers ist wichtig für eine optimale Leistung

Erwägen Sie die Implementierung einer automatisierten Bereitstellung in zukünftigen Iterationen