Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]


8.8.21 Kontinuierliche Integration

Cuirass ist ein Werkzeug zur kontinuierlichen Integration für Guix. Es kann sowohl bei der Entwicklung helfen als auch beim Anbieten von Substituten für andere (siehe Substitute).

Das Modul (gnu services cuirass) stellt den folgenden Dienst zur Verfügung:

Scheme-Prozedur: cuirass-service-type

Der Diensttyp des Cuirass-Dienstes. Sein Wert muss ein cuirass-configuration-Verbundsobjekt sein, wie im Folgenden beschrieben.

Um Erstellungsaufträge („Build Jobs“) hinzuzufügen, müssen Sie sie im specifications-Feld der Konfiguration eintragen. Hier ist ein Beispiel für einen Dienst, der das Guix-Repository regelmäßig lädt und die Pakete aus einem der Manifeste erstellt. Manche der Pakete werden in der Eingabe "eigene-pakete" definiert, was als GUIX_PACKAGE_PATH benutzt wird.

(define %cuirass-specs
  #~(list
     '((#:name . "my-manifest")
       (#:load-path-inputs . ("guix"))
       (#:package-path-inputs . ("eigene-pakete"))
       (#:proc-input . "guix")
       (#:proc-file . "build-aux/cuirass/gnu-system.scm")
       (#:proc . cuirass-jobs)
       (#:proc-args . ((subset . "manifests")
                       (systems . ("x86_64-linux"))
                       (manifests . (("config" . "guix/manifest.scm")))))
       (#:inputs . (((#:name . "guix")
                     (#:url . "git://git.savannah.gnu.org/guix.git")
                     (#:load-path . ".")
                     (#:branch . "master")
                     (#:no-compile? . #t))
                    ((#:name . "config")
                     (#:url . "https://git.example.org/config.git")
                     (#:load-path . ".")
                     (#:branch . "master")
                     (#:no-compile? . #t))
                    ((#:name . "eigene-pakete")
                     (#:url . "https://git.example.org/eigene-pakete.git")
                     (#:load-path . ".")
                     (#:branch . "master")
                     (#:no-compile? . #t)))))))

(service cuirass-service-type
         (cuirass-configuration
          (specifications %cuirass-specs)))

Die Informationen, die sich auf Erstellungsaufträge beziehen, werden direkt in deren Spezifikation festgelegt, aber globale Einstellungen des cuirass-Prozesses sind über andere Felder der cuirass-configuration zugänglich.

Datentyp: cuirass-configuration

Datentyp, der die Konfiguration von Cuirass repräsentiert.

log-file (Vorgabe: "/var/log/cuirass.log")

An welchen Ort die Protokolldatei geschrieben wird.

web-log-file (Vorgabe: "/var/log/cuirass-web.log")

An welchem Ort die Protokolldatei der Weboberfläche gespeichert wird.

cache-directory (Vorgabe: "/var/cache/cuirass")

Ort, wo Repositorys zwischengespeichert werden.

user (Vorgabe: "cuirass")

Besitzer des cuirass-Prozesses.

group (Vorgabe: "cuirass")

Gruppe des Besitzers des cuirass-Prozesses.

interval (Vorgabe: 60)

Anzahl der Sekunden, bevor ein Repository wieder neu geladen wird und danach Cuirass-Aufträge behandelt werden.

database (Vorgabe: "/var/lib/cuirass/cuirass.db")

An welchem Ort sich die sqlite-Datenbank befinden soll, die die Erstellungsergebnisse und bisher hinzugefügte Spezifikationen speichert.

ttl (Vorgabe: (* 30 24 3600))

Gibt an, wieviele Sekunden für Erstellungsergebnisse registrierte Müllsammlerwurzeln gültig bleiben („Time-to-live“, kurz TTL). Dadurch werden Erstellungsergebnisse für mindestens ttl-viele Sekunden geschützt.

port (Vortrag: 8081)

Portnummer, die vom HTTP-Server benutzt wird.

host (Vorgabe: "localhost")

Auf der Netzwerkschnittstelle für den Rechnernamen host lauschen. Nach Vorgabe werden Verbindungen vom lokalen Rechner localhost akzeptiert.

specifications (Vorgabe: #~'())

Ein G-Ausdruck (siehe G-Ausdrücke), der zu einer Liste von Spezifikationen ausgewertet wird, wobei jede Spezifikation eine assoziative Liste ist (siehe Associations Lists in GNU Guile Reference Manual), deren Schlüssel Schlüsselwörter sind („Keywords“ wie z.B. #:beispiel-für-ein-schlüsselwort), wie im Beispiel oben gezeigt.

use-substitutes? (Vorgabe: #f)

Hierdurch wird zugelassen, Substitute zu benutzen, damit nicht jede Abhängigkeit eines Auftrags erst aus ihrem Quellcode heraus erstellt werden muss.

one-shot? (Vorgabe: #f)

Spezifikationen nur einmal auswerten und Ableitungen nur einmal erstellen.

fallback? (Vorgabe: #f)

Pakete lokal erstellen, wenn das Substituieren einer vorerstellten Binärdatei fehlschlägt.

extra-options (Vorgabe: '())

Zusätzliche Befehlszeilenoptionen, die beim Ausführen des Cuirass-Prozesses mitgegeben werden sollen.

cuirass (Vorgabe: cuirass)

Das Cuirass-Paket, das benutzt werden soll.


Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]