Build .opm in CI/CD mit opmbuild

Bauen und testen Sie OTOBO-/Znuny-Pakete automatisiert ohne installiertes Ticket-System — mit dem CPAN-Tool OPM::Maker (opmbuild) in GitHub Actions.

Build .opm in CI/CD mit opmbuild

OPM::Maker ist ein eigenständiges Perl-CPAN-Modul, das die .opm-Werkzeuge ohne vollständige OTOBO-/Znuny-Installation bereitstellt. Das macht es ideal für CI/CD-Pipelines.

Installation

cpanm OPM::Maker

Das stellt den Befehl opmbuild bereit.

Befehle

BefehlZweck
opmbuild sopmtest MyPackage.sopmManifest-XML und Struktur prüfen
opmbuild filetest MyPackage.sopmAbgleich der Filelist mit den Dateien auf der Festplatte
opmbuild dependencies MyPackage.sopmAbhängigkeiten auflisten
opmbuild build --output dist/ MyPackage.sopm.opm-Datei erzeugen
opmbuild index repo/Repository-Index-XML für ein Verzeichnis mit .opm-Dateien erstellen

GitHub Actions Beispiel

name: Build OPM package

on:
  push:
    tags: ['v*']

jobs:
  build:
    runs-on: ubuntu-latest
    container: perl:5.40
    steps:
      - uses: actions/checkout@v4

      - name: Install OPM::Maker
        run: cpanm --notest OPM::Maker

      - name: Validate manifest
        run: |
          opmbuild sopmtest MyPackage.sopm
          opmbuild filetest MyPackage.sopm

      - name: Build .opm
        run: opmbuild build --output dist/ MyPackage.sopm

      - name: Upload artifact
        uses: actions/upload-artifact@v4
        with:
          name: opm-package
          path: dist/*.opm

Ohne eigene Pipeline: der Hub-Build-Service

Open ITSM Hub betreibt optional einen zustandslosen Dienst, der opmbuild hinter einer HTTP-API kapselt (siehe backend/opmbuild-service). Wenn er aktiviert ist, führen der .sopm-Validator und die Generatoren die echte Perl-Prüfung serverseitig aus — ganz ohne lokale Perl-Installation.

Tipp: Multi-Framework-Builds

Da ein .sopm mehrere <Framework>-Zeilen enthalten kann, erzeugt ein Build ein .opm, das auf allen deklarierten Forks installierbar ist. Prüfen Sie die Abdeckung vorab mit dem Kompatibilitäts-Checker.