Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,090 of 9,090 pages
About the help in other languages
All help pages

Continuous Integration für Erweiterungen

CI für eine Erweiterung so einrichten, wie es der Kernel tut - GitHub-Actions-Jobs für die PHP-Syntax auf jeder unterstützten Version, PHPUnit, statische Analyse, Prüfung der Commit-Nachrichten, minimale Rechte und…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/creators/app-creators/ci-for-extensions.md

On this page

This page is a translation. Read the English original

Continuous Integration für Erweiterungen

Diese Seite ist für Anwendungsentwickler, die jeden Push ihrer Erweiterung automatisch prüfen lassen möchten. Die eigenen Workflows des Kernels in .github/workflows/ sind ein erprobtes Vorbild (GitHub-Actions-Workflows).

Inhalt

  1. Was die CI des Kernels tut
  2. Ein Workflow für eine Erweiterung
  3. Tests gegen den Kernel
  4. Regeln

Was die CI des Kernels tut

WorkflowPrüft
quality.ymlPHP- und JavaScript-Syntax geänderter Dateien, das Dateimanifest, Commit-Nachrichten, Code-Stil (Warnung), PHPStan
phpunit.ymlPHPUnit auf PHP 8.1 bis 8.5 und einen Job mit MySQL und PostgreSQL
performance.ymleinen Mikro-Benchmark gegen eine Baseline (nur Warnung)
ci-health.ymleinen wöchentlichen Bericht über Erfolgsquoten und instabile Tests

Ein Workflow für eine Erweiterung

# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
permissions:
  contents: read
jobs:
  lint:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        php: ['8.0', '8.1', '8.2', '8.3', '8.4', '8.5']
    steps:
      - uses: actions/checkout@v4
      - uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
      - run: find . -name '*.php' -not -path './vendor/*' -print0 | xargs -0 -n1 php -l
  tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: shivammathur/setup-php@v2
        with:
          php-version: '8.3'
      - run: composer install --no-interaction
      - run: vendor/bin/phpunit tests/

Prüfen Sie die Syntax auf jeder PHP-Version, die der Kernel unterstützt (8.0 bis 8.5, Anforderungen), denn Installationen laufen auf allen davon.

Tests gegen den Kernel

Tests, die Kernel-Klassen brauchen, laufen in einem Checkout von se7enxweb/exponential, in dessen extension/ Ihre Erweiterung liegt: Checken Sie beides aus, führen Sie im Kernel composer install aus, kopieren oder verlinken Sie Ihre Erweiterung, erzeugen Sie die Autoloads neu und führen Sie dann Ihre Tests mit dem Bootstrap aus der phpunit.xml des Kernels aus. Halten Sie diese Tests nach Möglichkeit frei von Datenbankzugriffen (PHPUnit-Tests ohne Datenbank).

Regeln

  • Minimale Rechte: permissions: contents: read; kein pull_request_target.
  • Ein Timeout pro Job.
  • Versionen der Actions festlegen; bewusst aktualisieren.
  • Keine Geheimnisse in Logs; Geheimnisse nur dort, wo ein Job sie wirklich braucht, und nie bei Pull Requests aus Forks.
  • Eine rote CI blockiert das Release-Tag (Versionen und Releases).

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x