# Migrieren von Jenkins mit GitHub Actions Importer

Erfahre, wie du mit dem GitHub Actions Importer die Migration deiner Jenkins-Pipelines zu GitHub Actions automatisierst.

## Informationen zur Migration von Jenkins mit GitHub Actions Importer

In den folgenden Anweisungen erfährst du, wie du deine Umgebung so konfigurierst, dass der GitHub Actions Importer zum Migrieren von Jenkins-Pipelines zu GitHub Actions verwendet wird.

### Voraussetzungen

* Ein Jenkins-Konto oder eine Organisation mit Pipelines und Aufträgen, die du in GitHub Actions-Workflows konvertieren möchtest
* Zugriffsberechtigungen für das Erstellen eines persönlichen Jenkins-API-Tokens für dein Konto oder deine Organisation
* Eine Umgebung, in der du Linux-basierte Container ausführen und die erforderlichen Tools installieren kannst:
  * Docker ist [installiert](https://docs.docker.com/get-docker/) und wird ausgeführt.

  * Die [GitHub-CLI](https://cli.github.com) ist installiert.
  > \[!NOTE]
  > Der GitHub Actions Importer-Container und die CLI müssen nicht auf demselben Server wie deine CI-Plattform installiert werden.

### Einschränkungen

Bei der Migration von Jenkins zu GitHub Actions mit dem GitHub Actions Importer gelten einige Einschränkungen: Beispielsweise musst du die folgenden Konstrukte manuell migrieren:

* Obligatorische Build-Tools
* Skriptpipelines
* Geheimnisse
* Selbstgehosteten Runnern
* Unbekannte Plug-Ins

Weitere Informationen zu manuellen Migrationen findest du unter [Migrieren von Jenkins zu GitHub Actions](/de/actions/migrating-to-github-actions/manually-migrating-to-github-actions/migrating-from-jenkins-to-github-actions).

## Installieren der GitHub Actions Importer-CLI-Erweiterung

1. So installierst du die GitHub Actions Importer-CLI-Erweiterung:

   ```bash copy
   gh extension install github/gh-actions-importer
   ```

2. Überprüfe, ob die Erweiterung installiert ist:

   ```bash
   $ gh actions-importer -h
   Options:
     -?, -h, --help  Show help and usage information

   Commands:
     update     Update to the latest version of GitHub Actions Importer.
     version    Display the version of GitHub Actions Importer.
     configure  Start an interactive prompt to configure credentials used to authenticate with your CI server(s).
     audit      Plan your CI/CD migration by analyzing your current CI/CD footprint.
     forecast   Forecast GitHub Actions usage from historical pipeline utilization.
     dry-run    Convert a pipeline to a GitHub Actions workflow and output its yaml file.
     migrate    Convert a pipeline to a GitHub Actions workflow and open a pull request with the changes.
   ```

## Konfigurieren von Anmeldeinformationen

Mit dem CLI-Befehl `configure` werden die erforderlichen Anmeldeinformationen und Optionen für GitHub Actions Importer beim Arbeiten mit Jenkins und GitHub festgelegt.

1. Erstelle ein GitHub-personal access token (classic). Weitere Informationen finden Sie unter [Verwalten deiner persönlichen Zugriffstoken](/de/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic).

   Ihr Token muss den `workflow` Bereich haben.

   Kopiere das Token nach dem Erstellen zur späteren Verwendung an einen sicheren Speicherort.

2. Erstelle ein Jenkins-API-Token. Weitere Informationen findest du unter [Authentifizieren von Skriptclients](https://www.jenkins.io/doc/book/system-administration/authenticating-scripted-clients/) in der Jenkins-Dokumentation.

   Kopiere das Token nach dem Erstellen zur späteren Verwendung an einen sicheren Speicherort.

3. Führe am Terminal in der GitHub Actions Importer CLI den Befehl `configure` aus:

   ```shell
   gh actions-importer configure
   ```

   Sie werden vom Befehl `configure` zur Eingabe folgender Informationen aufgefordert:

   * Für "Welche CI-Anbieter konfigurieren Sie?", verwenden Sie die Pfeiltasten, um `Jenkins` zu wählen, drücken Sie die <kbd>Leertaste</kbd>, um es auszuwählen, und drücken Sie dann <kbd>Enter</kbd>.
   * Geben Sie für „Personal access token für GitHub“ den Wert des personal access token (classic) ein, das Sie zuvor erstellt haben, und drücken Sie die <kbd>EINGABETASTE</kbd>.
   * Geben Sie für "Basis-URL der GitHub-Instanz"  drücken Sie <kbd>Enter</kbd>, um den Standardwert (`https://github.com`) zu übernehmen.
   * Gib für „Personal access token für Jenkins“ den Wert des persönlichen Jenkins-API-Tokens ein, das du zuvor erstellt hast, und drücke die <kbd>EINGABETASTE</kbd>.
   * Gib unter „Benutzername des Jenkins-Benutzers“ deinen Jenkins-Benutzernamen ein, und drücke die <kbd>EINGABETASTE</kbd>.
   * Gib als „Basis-URL der Jenkins-Instanz“ die URL deiner Jenkins-Instanz ein, und drücke die <kbd>EINGABETASTE</kbd>.

   Ein Beispiel für den Befehl `configure`:

   ```shell
   $ gh actions-importer configure
   ✔ Which CI providers are you configuring?: Jenkins
   Enter the following values (leave empty to omit):
   ✔ Personal access token for GitHub: ***************
   ✔ Base url of the GitHub instance: https://github.com
   ✔ Personal access token for Jenkins: ***************
   ✔ Username of Jenkins user: admin
   ✔ Base url of the Jenkins instance: https://localhost
   Environment variables successfully updated.
   ```

4. Führe am Terminal den CLI-Befehl GitHub Actions Importer `update` aus, um eine Verbindung mit GitHub Packages Container registry herzustellen, und überprüfe, ob das Containerimage auf die neueste Version aktualisiert wurde:

   ```shell
   gh actions-importer update
   ```

   Die Ausgabe dieses Befehls sollte in etwa wie folgt aussehen:

   ```shell
   Updating ghcr.io/actions-importer/cli:latest...
   ghcr.io/actions-importer/cli:latest up-to-date
   ```

## Audit von Jenkins durchführen

Mit dem Befehl `audit` kannst du eine allgemeine Ansicht aller Pipelines auf einem Jenkins-Server abrufen.

Mit dem Befehl `audit` werden die folgenden Aktionen ausgeführt:

1. Abrufen aller auf einem Jenkins-Server definierten Projekte
2. Konvertiert jede Pipeline in den entsprechenden GitHub Actions-Workflow.
3. Erzeugt einen Bericht, der zusammenfasst, wie vollständig und komplex eine Migration mit GitHub Actions Importer möglich ist.

### Ausführen des Überprüfungsbefehls

Führe den folgenden Befehl am Terminal aus, um eine Überprüfung eines Jenkins-Servers durchzuführen:

```shell
gh actions-importer audit jenkins --output-dir tmp/audit
```

### Untersuchen der Überprüfungsergebnisse

Die Dateien im angegebenen Ausgabeverzeichnis enthalten die Ergebnisse der Überprüfung. Eine Zusammenfassung der Überprüfungsergebnisse findest du in der Datei `audit_summary.md`.

Die Überprüfungszusammenfassung enthält die folgenden Abschnitte.

#### Pipelines

Der Abschnitt „Pipelines“ enthält eine allgemeine Statistik zur Konvertierungsrate durch den GitHub Actions Importer.

Im Folgenden sind einige wichtige Begriffe aufgeführt, die im Abschnitt „Pipelines“ enthalten sein können:

* Bei **erfolgreichen** Pipelines wurden 100 % der Pipelinekonstrukte und Einzelelemente automatisch in ihre GitHub Actions-Entsprechung konvertiert.
* Bei **teilweise erfolgreichen** Pipelines wurden zwar alle Pipelinekonstrukte, aber nicht alle Einzelelemente automatisch in ihre GitHub Actions-Entsprechung konvertiert.
* **Nicht unterstützte** Pipelines sind Definitionstypen, die vom GitHub Actions Importer nicht unterstützt werden.
* Bei **fehlerhaften** Pipelines ist beim Konvertieren ein schwerwiegender Fehler aufgetreten. Dies kann aus drei Gründen auftreten:
  * Die Pipeline war ursprünglich falsch konfiguriert und nicht gültig.
  * Der GitHub Actions Importer hat beim Konvertieren ein interner Fehler festgestellt.
  * Es gab eine nicht erfolgreiche Netzwerkantwort, die dazu führte, dass auf die Pipeline nicht zugegriffen werden konnte. Dies ist häufig auf ungültige Anmeldeinformationen zurückzuführen.

#### Buildschritte

Der Abschnitt „Buildschritte“ enthält eine Übersicht über die einzelnen Buildschritte, die in allen Pipelines verwendet werden, und darüber, wie viele davon vom GitHub Actions Importer automatisch konvertiert wurden.

Im Folgenden sind einige wichtige Begriffe aufgeführt, die im Abschnitt „Buildschritte“ enthalten sein können:

* Ein **bekannter** Buildschritt ist ein Schritt, der automatisch in eine entsprechende Aktion konvertiert wurde.
* Ein **unbekannter** Buildschritt ist ein Schritt, der nicht automatisch in eine entsprechende Aktion konvertiert wurde.
* Ein **nicht unterstützter** Buildschritt ist ein Schritt, für den eine der folgenden Aussagen zutrifft:
  * Er wird grundsätzlich von GitHub Actions nicht unterstützt.
  * Seine Konfiguration ist mit GitHub Actions nicht kompatibel.
* Eine **Aktion** ist eine Liste der Aktionen, die in den konvertierten Workflows verwendet wurden. Dies kann für Folgendes wichtig sein:
  * Zum Sammeln der Liste der Aktionen, die mit deiner Instanz synchronisiert werden sollen, sofern du GitHub Enterprise Server verwendest
  * Zum Definieren einer Positivliste der verwendeten Aktionen auf Organisationsebene. Diese Aktionenliste enthält sämtliche Aktionen, die von den Sicherheits- oder Complianceteams möglicherweise überprüft werden müssen.

#### Manuelle Aufgaben

Der Abschnitt „Manuelle Aufgaben“ enthält eine Übersicht über Aufgaben, die der GitHub Actions Importer nicht automatisch ausführen kann und die du manuell ausführen musst.

Im Folgenden sind einige wichtige Begriffe aufgeführt, die im Abschnitt „Manuelle Aufgaben“ enthalten sein können:

* Ein **Geheimnis** gilt auf Repository- oder Organisationsebene und wird in den konvertierten Pipelines verwendet. Diese Geheimnisse müssen manuell in GitHub Actions erstellt werden, damit diese Pipelines ordnungsgemäß funktionieren. Weitere Informationen finden Sie unter [Verwenden von Geheimnissen in GitHub-Aktionen](/de/actions/security-guides/using-secrets-in-github-actions).
* **Selbstgehosteter Runner** ist eine Bezeichnung für Runner, auf die in einer konvertierten Pipeline verwiesen wird, und die nicht von GitHub gehostet werden. Du musst diese Runner manuell definieren, damit diese Pipelines ordnungsgemäß funktionieren.

#### Dateien

Der letzte Abschnitt des Überprüfungsberichts enthält ein Manifest aller Dateien, die während der Überprüfung auf den Datenträger geschrieben wurden.

Für jede Pipelinedatei werden verschiedene Dateien überprüft, z. B.:

* Die ursprüngliche Pipeline, wie in GitHub definiert
* Alle Netzwerkantworten, die zum Konvertieren der Pipeline verwendet werden
* Die konvertierte Workflowdatei
* Stapelablaufverfolgungen, die zur Problembehandlung bei einer fehlerhaften Pipelinekonvertierung verwendet werden können

Darüber hinaus enthält die Datei `workflow_usage.csv` eine durch Trennzeichen getrennte Liste aller Aktionen, Geheimnisse und Runner, die von jeder erfolgreich konvertierten Pipeline verwendet werden. Dies kann nützlich sein, um zu bestimmen, welche Workflows Aktionen, Geheimnisse oder Runner verwenden, und um Sicherheitsüberprüfungen durchzuführen.

## Vorhersagen der potenziellen Nutzung von Buildrunnern

Mit dem Befehl `forecast` kannst du die potenzielle GitHub Actions-Nutzung vorhersagen, indem du Metriken aus abgeschlossenen Pipelineausführungen auf deinem Jenkins-Server berechnest.

### Voraussetzungen für die Ausführung des Vorhersagebefehls

Um den Befehl `forecast` für eine Jenkins-Instanz auszuführen, musst du das [`paginated-builds`-Plug-In](https://plugins.jenkins.io/paginated-builds) auf deinem Jenkins-Server installieren. Mit diesem Plug-In kann der GitHub Actions Importer verlaufsbezogene Builddaten für Aufträge mit einer großen Anzahl von Builds effizient abrufen. Da Jenkins keine Methode zum Abrufen paginierter Builddaten bereitstellt, verhindert die Verwendung dieses Plug-Ins Timeouts vom Jenkins-Server, die beim Abrufen einer großen Menge von Verlaufsdaten auftreten können. Das Plug-In `paginated-builds` ist open source und macht einen REST-API-Endpunkt verfügbar, um Builddaten auf Seiten und nicht auf einmal abzurufen.

So installierst du das `paginated-builds`-Plug-In

1. Navigiere auf deiner Jenkins-Instanz zu `https://<your-jenkins-instance>/pluginManager/available`.
2. Suche nach dem `paginated-builds`-Plug-In.
3. Aktiviere das Kontrollkästchen auf der linken Seite, und wähle **Ohne Neustart installieren** aus.

### Ausführen des Vorhersagebefehls

Führe den folgenden Befehl am Terminal aus, um die potenzielle GitHub Actions-Nutzung vorherzusagen. Standardmäßig umfasst der Vorhersagebericht von GitHub Actions Importer die letzten sieben Tage.

```shell
gh actions-importer forecast jenkins --output-dir tmp/forecast
```

### Überprüfen des Prognoseberichts

Die Datei `forecast_report.md` im angegebenen Ausgabeverzeichnis enthält die Ergebnisse der Vorhersage.

Im Folgenden sind einige wichtige Begriffe aufgeführt, die im Vorhersagebericht enthalten sein können:

* Die **Auftragsanzahl** ist die Gesamtanzahl der abgeschlossenen Aufträge.
* Die **Pipelineanzahl** ist die Anzahl der verwendeten eindeutigen Pipelines.
* Die **Ausführungszeit** ist die Zeit, die ein Runner für einen Auftrag aufgewendet hat. Mithilfe dieser Metrik können die Kosten für Runner, die von GitHub gehostet werden, geplant werden.
  * Diese Metrik korreliert damit, wie viel Sie als Ausgaben in GitHub Actions einplanen sollten. Dies wird je nach der für diese Minuten verwendeten Hardware variieren. Du kannst den [Preisrechner für GitHub Actions](https://github.com/pricing/calculator) verwenden, um die Kosten zu schätzen.
* Metriken zur **Warteschlangenzeit** beschreiben die Zeit, die ein Auftrag in der Warteschlange verbringt, bis ein Runner zur Ausführung verfügbar ist.
* Metriken zu **gleichzeitigen Aufträgen** beschreiben die Anzahl der Aufträge, die zu einem bestimmten Zeitpunkt ausgeführt werden. Mithilfe dieser Metrik kann die Anzahl von Runnern definiert werden, die du konfigurieren solltest.

Zusätzlich werden diese Metriken für jede Warteschlange von Runnern in Jenkins definiert. Dies ist besonders nützlich, wenn es eine Mischung aus gehosteten oder selbstgehosteten Runnern oder Computern mit hoher oder niedriger Leistung gibt, da du spezifische Metriken für verschiedene Runnertypen anzeigen kannst.

## Führen Sie eine Testmigration einer Jenkins-Pipeline durch

Mit dem Befehl `dry-run` kannst du eine Jenkins-Pipeline in einen entsprechenden GitHub Actions-Workflow konvertieren.

### Ausführen des Probelaufbefehls

Mit dem Befehl `dry-run` kannst du eine Jenkins-Pipeline in einen entsprechenden GitHub Actions-Workflow konvertieren. Bei einem Probelauf werden die Ausgabedateien in einem angegebenen Verzeichnis erstellt, jedoch wird kein Pull-Request zur Migration der Pipeline eröffnet.

Führe für eine Probelaufmigration deiner Jenkins-Pipeline zu GitHub Actions den folgenden Befehl am Terminal aus, und ersetze dabei `my-jenkins-project` durch die URL des Jenkins-Auftrags.

```shell
gh actions-importer dry-run jenkins --source-url my-jenkins-project --output-dir tmp/dry-run
```

### Überprüfen der konvertierten Workflows

Sie können die Protokolle des Probelaufs und die konvertierten Workflowdateien im angegebenen Ausgabeverzeichnis überprüfen.

Wenn der GitHub Actions Importer etwas nicht automatisch konvertieren konnte (z. B. unbekannte Buildschritte oder eine teilweise erfolgreiche Pipeline), solltest du benutzerdefinierte Transformatoren erstellen, um den Konvertierungsprozess präziser anzupassen. Weitere Informationen finden Sie unter [Das Erweitern des GitHub Actions Importers mit benutzerdefinierten Transformatoren](/de/actions/migrating-to-github-actions/automated-migrations/extending-github-actions-importer-with-custom-transformers).

## Durchführen einer Produktionsmigration einer Jenkins-Pipeline

Mit dem Befehl `migrate` kannst du eine Jenkins-Pipeline in einen entsprechenden GitHub Actions-Workflow konvertieren und einen Pull Request erstellen.

### Ausführen des Migrationsbefehls

Um eine Jenkins-Pipeline zu GitHub Actions zu migrieren, führst du den folgenden Befehl im Terminal aus, und ersetzt dabei den `target-url`-Wert durch die URL deines GitHub-Repositorys und `my-jenkins-project` durch die URL deines Jenkins-Auftrags.

```shell
gh actions-importer migrate jenkins --target-url https://github.com/:owner/:repo --output-dir tmp/migrate --source-url my-jenkins-project
```

Die Ausgabe des Befehls enthält die URL zum Pull Request, der den konvertierten Workflow deinem Repository hinzufügt. Beispiel für eine erfolgreiche Ausgabe:

```shell
$ gh actions-importer migrate jenkins --target-url https://github.com/octo-org/octo-repo --output-dir tmp/migrate --source-url http://localhost:8080/job/monas_dev_work/job/monas_freestyle
[2022-08-20 22:08:20] Logs: 'tmp/migrate/log/actions-importer-20220916-014033.log'
[2022-08-20 22:08:20] Pull request: 'https://github.com/octo-org/octo-repo/pull/1'
```

### Überprüfen des Pull Requests

Die Ausgabe einer erfolgreichen Ausführung des Befehls `migrate` enthält einen Link zum neuen Pull Request, mit dem der konvertierte Workflow deinem Repository hinzugefügt wird.

Wichtige Elemente des Pull Requests:

* In der Beschreibung des Pull Requests findest du den Abschnitt **Manuelle Schritte**, in dem Schritte aufgeführt sind, die du manuell ausführen musst, um die Migration deiner Pipelines zu GitHub Actions abschließen zu können. In diesem Abschnitt könnte z. B. stehen, dass du Geheimnisse erstellen musst, die im Workflows verwendet werden.
* Die konvertierte Workflowdatei Wähle im Pull Request die Registerkarte **Files changed** aus, um die Workflowdatei anzuzeigen, die deinem GitHub-Repository hinzugefügt wird.

Nachdem du den Pull Request überprüft hast, kannst du ihn zusammenführen, um den Workflow deinem GitHub-Repository hinzuzufügen.

## Verweis

Dieser Abschnitt enthält Verweisinformationen zu Umgebungsvariablen, optionalen Argumenten und der unterstützten Syntax, wenn der GitHub Actions Importer für die Migration von Jenkins verwendet wird.

### Verwenden von Umgebungsvariablen

GitHub Actions Importer verwendet Umgebungsvariablen für die Konfiguration der Authentifizierung. Diese Variablen werden beim Ausführen des Konfigurationsvorgangs mithilfe des Befehls `configure` festgelegt. Weitere Informationen findest du im Abschnitt [Konfigurieren von Anmeldeinformationen](#configuring-credentials).

GitHub Actions Importer verwendet die folgenden Umgebungsvariablen, um eine Verbindung mit deiner Jenkins-Instanz herzustellen:

* ```
            `GITHUB_ACCESS_TOKEN`: Das personal access token (classic) zum Erstellen von Pull Requests mit einem konvertierten Workflow (erfordert die Bereiche `repo` und `workflow`)
  ```

* `GITHUB_INSTANCE_URL`: Die URL zur Zielinstanz von GitHub (z. B. `https://github.com`)

* `JENKINS_ACCESS_TOKEN`: Das Jenkins-API-Token, das zum Anzeigen von Jenkins-Ressourcen verwendet wird

  > \[!NOTE]
  > Dieses Token erfordert Zugriff auf alle Aufträge, die du migrieren oder überwachen möchtest. Falls ein Ordner oder Auftrag keine Zugriffssteuerungslisten vom übergeordneten Element erbt, musst du explizite Berechtigungen oder vollständige Administratorrechte gewähren.

* `JENKINS_USERNAME`: Der Benutzername des Benutzerkontos, mit dem das Jenkins-API-Token erstellt wurde

* `JENKINS_INSTANCE_URL`: Die URL der Jenkins-Instanz

* `JENKINSFILE_ACCESS_TOKEN` (optional): Das API-Token, das verwendet wird, um den Inhalt eines im Buildrepository gespeicherten `Jenkinsfile` abzurufen. Es erfordert den Bereich `repo`. Wenn keine Angabe erfolgt, wird stattdessen das `GITHUB_ACCESS_TOKEN` verwendet.

Diese Umgebungsvariablen können in einer `.env.local`-Datei angegeben werden, die vom GitHub Actions Importer geladen wird, wenn es ausgeführt wird.

### Verwenden optionaler Argumente

Es gibt einige optionale Argumente, die du mit den Unterbefehlen von GitHub Actions Importer verwenden kannst, um deine Migration anzupassen.

#### `--source-file-path`

Du kannst das `--source-file-path`-Argument mit den Unterbefehlen `forecast`, `dry-run` oder `migration` verwenden.

Standardmäßig ruft der GitHub Actions Importer Pipelineinhalte aus der Quellcodeverwaltung ab. Das `--source-file-path`-Argument weist den GitHub Actions Importer an, stattdessen den angegebenen Quelldateipfad zu verwenden. Du kannst diese Option für Jenkinsfile- und Multibranch-Pipelines verwenden.

Wenn du beim Ausführen des Unterbefehls `forecast` mehrere Quelldateien angeben möchtest, kannst du einen Musterabgleich im Dateipfadwert verwenden. Mit `gh forecast --source-file-path ./tmp/previous_forecast/jobs/*.json` übergibst du z. B. alle Quelldateien an den GitHub Actions Importer, die dem Dateipfad `./tmp/previous_forecast/jobs/*.json` entsprechen.

##### Beispiel für eine Jenkinsfile-Pipeline

In diesem Beispiel verwendet GitHub Actions Importer das angegebene Jenkinsfile als Quelldatei, um einen Probelauf durchzuführen.

```shell
gh actions-importer dry-run jenkins --output-dir path/to/output/ --source-file-path path/to/Jenkinsfile --source-url :url_to_jenkins_job
```

#### `--config-file-path`

Du kannst das `--config-file-path`-Argument mit den Unterbefehlen `audit`, `dry-run` und `migrate` verwenden.

Standardmäßig ruft der GitHub Actions Importer Pipelineinhalte aus der Quellcodeverwaltung ab. Das `--config-file-path`-Argument weist den GitHub Actions Importer an, stattdessen die angegebenen Quelldateien zu verwenden.

Wenn du die Option `--config-file-path` mit den Unterbefehlen `dry-run` oder `migrate` verwendest, gleicht der GitHub Actions Importer das Repositorydatenfeld mit dem Auftrag ab, der durch die Option `--source-url` zum Auswählen der Pipeline angegeben wird. Er verwendet `config-file-path`, um die angegebene Quelldatei zu pullen.

##### Beispiel für Prüfung

In diesem Beispiel verwendet der GitHub Actions Importer die angegebene YAML-Konfigurationsdatei für eine Überprüfung.

```shell
gh actions-importer audit jenkins --output-dir path/to/output/ --config-file-path path/to/jenkins/config.yml
```

Um eine Jenkins-Instanz mithilfe einer Konfigurationsdatei zu überprüfen, muss die Konfigurationsdatei das folgende Format aufweisen, und jeder `repository_slug`-Wert muss eindeutig sein:

```yaml
source_files:
  - repository_slug: pipeline-name
    path: path/to/Jenkinsfile
  - repository_slug: multi-branch-pipeline-name
    branches:
      - branch: main
        path: path/to/Jenkinsfile
      - branch: node
        path: path/to/Jenkinsfile
```

### Unterstützte Syntax für Jenkins-Pipelines

Die folgende Tabelle zeigt den Typ der Eigenschaften, die der GitHub Actions Importer derzeit konvertieren kann. Weitere Informationen zum Vergleich der Jenkins-Pipelinesyntax mit GitHub Actions findest du unter [Migrieren von Jenkins zu GitHub Actions](/de/actions/migrating-to-github-actions/manually-migrating-to-github-actions/migrating-from-jenkins-to-github-actions).

Informationen zu unterstützten Jenkins-Plug-Ins findest du im [`github/gh-actions-importer`-Repository](https://github.com/github/gh-actions-importer/blob/main/docs/jenkins/index.md).

#### Unterstützte Syntax für Freestyle-Pipelines

| Jenkins                | GitHub-Aktionen           | Status                |
| :--------------------- | :------------------------ | :-------------------- |
| Docker-Vorlage         | `jobs.<job_id>.container` | Unterstützt           |
| build                  | `jobs`                    | Teilweise unterstützt |
| Erstellen der Umgebung | `env`                     | Teilweise unterstützt |
| Buildtrigger           | `on`                      | Teilweise unterstützt |
| allgemein              | `runners`                 | Teilweise unterstützt |

#### Unterstützte Syntax für Jenkinsfile-Pipelines

| Jenkins    | GitHub-Aktionen                 | Status                |
| :--------- | :------------------------------ | :-------------------- |
| Docker     | `jobs.<job_id>.container`       | Unterstützt           |
| Phase      | `jobs.<job_id>`                 | Unterstützt           |
| Agent      | `runners`                       | Teilweise unterstützt |
| Umgebung   | `env`                           | Teilweise unterstützt |
| Stufen     | `jobs`                          | Teilweise unterstützt |
| Schritte   | `jobs.<job_id>.steps`           | Teilweise unterstützt |
| Auslöser   | `on`                            | Teilweise unterstützt |
| wenn       | `jobs.<job_id>.if`              | Teilweise unterstützt |
| Eingaben   | `inputs`                        | Nicht unterstützt     |
| Matrix     | `jobs.<job_id>.strategy.matrix` | Nicht unterstützt     |
| Optionen   | `jobs.<job_id>.strategy`        | Nicht unterstützt     |
| parameters | `inputs`                        | Nicht unterstützt     |

### Syntax für Umgebungsvariablen

GitHub Actions Importer verwendet die Zuordnungen in der folgenden Tabelle, um die Standardumgebungsvariablen von Jenkins in die passendsten Entsprechung in GitHub Actions zu konvertieren.

| Jenkins           | GitHub-Aktionen                                                                       |
| :---------------- | :------------------------------------------------------------------------------------ |
| `${BUILD_ID}`     | `${{ github.run_id }}`                                                                |
| `${BUILD_NUMBER}` | `${{ github.run_id }}`                                                                |
| `${BUILD_TAG}`    | `${{ github.workflow }}-${{ github.run_id }}`                                         |
| `${BUILD_URL}`    | `${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}` |
| `${JENKINS_URL}`  | `${{ github.server_url }}`                                                            |
| `${JOB_NAME}`     | `${{ github.workflow }}`                                                              |
| `${WORKSPACE}`    | `${{ github.workspace }}`                                                             |

## Rechtliche Hinweise

Teile wurden von <https://github.com/github/gh-actions-importer/> unter der MIT-Lizenz übernommen:

```text
MIT License

Copyright (c) 2022 GitHub

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```