back

Knowledge Centre

Wie man mit Continuous Integration (CI) für Drupal 7 beginnt

| 05.03.2015

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
img
Top
white-paper
  • Wissen
    Wissenszentrum
    Im Gehirn einer KI
  • Wissen
    Wissenszentrum
    Feinabstimmung von LLaMA zur Nachbildung von Eminescus literarischem Stil
  • Wissen
    Wissenszentrum
    Ein neues Zeitalter beginnt: Drupal CMS 1.0 startet