Hydra/de: Difference between revisions

Jopejoe1 (talk | contribs)
Created page with "Hydra benutzt localhost als Standardbuildmaschine, wenn nichts anderes konfiguriert ist. Standardmäßig sind die Systemfunktionen <code>kvm> und <code>nixos-test</code> in Nix, zum benutzen von Virtuellen Maschinen nicht aktiviert. Jobs, die dies Funktionen benötigen werden daraufhin auf unbestimmte Zeit in die Warteschlange gestellt. Die folgenden Optionen aktieren diese Systemfeature:"
Tags: Mobile edit Mobile web edit
Jopejoe1 (talk | contribs)
No edit summary
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages />
<languages />
<div lang="en" dir="ltr" class="mw-content-ltr">
{{note| Hydra is intended to be used by Nix/NixOS package developers; it is not needed to simply use NixOS.}}
</div>
Hydra ist ein Werkzeug für kontinuierliche Integrationstests und Softwarefreigabe, das eine rein funktionale Sprache zur Beschreibung von Build-Jobs und deren Abhängigkeiten verwendet. Kontinuierliche Integration ist eine einfache Technik zur Verbesserung der Qualität des Softwareentwicklungsprozesses. Ein automatisiertes System prüft kontinuierlich oder periodisch den Quellcode eines Projekts, baut ihn, führt Tests durch und erstellt Berichte für die Entwickler. Auf diese Weise werden verschiedene Fehler, die versehentlich in die Codebasis aufgenommen werden könnten, automatisch erkannt.
Hydra ist ein Werkzeug für kontinuierliche Integrationstests und Softwarefreigabe, das eine rein funktionale Sprache zur Beschreibung von Build-Jobs und deren Abhängigkeiten verwendet. Kontinuierliche Integration ist eine einfache Technik zur Verbesserung der Qualität des Softwareentwicklungsprozesses. Ein automatisiertes System prüft kontinuierlich oder periodisch den Quellcode eines Projekts, baut ihn, führt Tests durch und erstellt Berichte für die Entwickler. Auf diese Weise werden verschiedene Fehler, die versehentlich in die Codebasis aufgenommen werden könnten, automatisch erkannt.


Line 24: Line 28:
</syntaxHighlight>
</syntaxHighlight>


Dieses Modul aktiviert PostgreSQL automatisch,
Dieses Modul aktiviert [[PostgreSQL|PostgreSQL]] automatisch,
außer die <code>services.hydra.dbi</code> wird geändert. Das Datenbanklayout wird automatisch erstellt vom Hydra-Service. Allerdings ist anzumerken, das zusätzliche Daten in der Datenbank gespeichert werden, was eine vollständige deklarative Konfiguration unmöglich macht. Daher sind Backups erforderlich.
außer die <code>services.hydra.dbi</code> wird geändert. Das Datenbanklayout wird automatisch erstellt vom Hydra-Service. Allerdings ist anzumerken, das zusätzliche Daten in der Datenbank gespeichert werden, was eine vollständige deklarative Konfiguration unmöglich macht. Daher sind Backups erforderlich.


Line 54: Line 58:
   nix.buildMachines = [
   nix.buildMachines = [
     { hostName = "localhost";
     { hostName = "localhost";
      protocol = null;
       system = "x86_64-linux";
       system = "x86_64-linux";
       supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark"];
       supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark"];
Line 71: Line 76:
Ein Jobset kann wie folgt konfiguriert werden.
Ein Jobset kann wie folgt konfiguriert werden.


<div class="mw-translate-fuzzy">
* Type: [[Flakes|Flake]]
* Type: Flake
* Flake URI: eine URI die auf ein Repo mit einem Flake zeigt: git+https://git.myserver.net/user/repo.git
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Line 217: Line 219:


<span id="Jobsets"></span>
<span id="Jobsets"></span>
<div class="mw-translate-fuzzy">
==== Jobset ====
==== Jobset ====
Eine Liste von Jobs, die ausgeführt werden sollen. Oft passt ein Jobset zu einem bestimmten Branch (master, staging, stable). Ein Jobset wird durch seine Eingaben definiert und wird ausgelöst, wenn sich diese Eingaben ändern, z.B. wenn ein neuer Commit zu einem Branch hinzugefügt wird. Jobsets können voneinander abhängen.
Eine Liste von Jobs, die ausgeführt werden sollen. Oft passt ein Jobset zu einem bestimmten Branch (master, staging, stable). Ein Jobset wird durch seine Eingaben definiert und wird ausgelöst, wenn sich diese Eingaben ändern, z.B. wenn ein neuer Commit zu einem Branch hinzugefügt wird. Jobsets können voneinander abhängen.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
==== Job ====
A Jobset is a list of jobs which will be run. Often a jobset fits to a certain branch (master, staging, stable). A Jobset is defined by its inputs and will trigger if these inputs change. For example when a new commit onto a branch is added. Jobsets may depend on each other.
</div>


<span id="Job"></span>
<div class="mw-translate-fuzzy">
==== Job ====
Ein Closure, welches als Teil eines Jobsatzes erstellt wird (wie ein einzelnes Paket, ISO-Image oder Tarball).
Ein Closure, welches als Teil eines Jobsatzes erstellt wird (wie ein einzelnes Paket, ISO-Image oder Tarball).
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
==== Release Set ====
A closure which will be built as part of a job set (like a single package, iso image or tarball).
</div>


<span id="Release_Set"></span>
<div class="mw-translate-fuzzy">
==== Release Set ====
Definiert alle Jobs, die in Ihrem Release beschrieben sind. Konventionell wird eine Datei namens <code>release.nix</code> verwendet. Eine ausführliche Beschreibung der Struktur finden Sie im [https://nixos.org/hydra/manual/#idm140737315920320 Hydra Handbuch für Build Recipes].
Definiert alle Jobs, die in Ihrem Release beschrieben sind. Konventionell wird eine Datei namens <code>release.nix</code> verwendet. Eine ausführliche Beschreibung der Struktur finden Sie im [https://nixos.org/hydra/manual/#idm140737315920320 Hydra Handbuch für Build Recipes].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Defines all the jobs which are described in your release. By convention a file called<code>release.nix</code> is being used. See the [https://nixos.org/hydra/manual/#idm140737315920320 Hydra manual for Build Recipes] for a thorough description of the structure.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">