Tutorial: Bereitstellen über GitHub in Azure App Service mit JenkinsTutorial: Deploy from GitHub to Azure App Service using Jenkins

In diesem Tutorial werden Continuous Integration (CI) und Continuous Deployment (CD) in Jenkins eingerichtet, um eine exemplarische Java-Web-App aus GitHub in Azure App Service unter Linux bereitzustellen.This tutorial deploys a sample Java web app from GitHub to Azure App Service on Linux by setting up continuous integration (CI) and continuous deployment (CD) in Jenkins. Wenn Sie die App aktualisieren, indem Sie Commits an GitHub pushen, wird die App von Jenkins automatisch erstellt und erneut in Azure App Service veröffentlicht.When you update the app by pushing commits to GitHub, Jenkins automatically builds and republishes your app to Azure App Service. Die Beispiel-App in diesem Tutorial wurde unter Verwendung des Spring Boot-Frameworks entwickelt.The sample app in this tutorial was developed by using the Spring Boot framework.

Übersicht über die GitHub-Bereitstellung in Azure App Service

Dieses Tutorial umfasst folgende Aufgaben:In this tutorial, you'll complete these tasks:

  • Installieren des Jenkins-Plug-Ins, um die Erstellung auf der Grundlage von GitHub, die Bereitstellung in Azure App Service und andere ähnliche Aufgaben zu ermöglichenInstall Jenkins plug-ins so you can build from GitHub, deploy to Azure App Service, and other related tasks.
  • Forken des GitHub-Beispielrepositorys, um eine Arbeitskopie zu erhaltenFork the sample GitHub repo so you have a working copy.
  • Herstellen einer Verbindung zwischen Jenkins und GitHubConnect Jenkins to GitHub.
  • Erstellen eines Azure-Dienstprinzipals, damit Jenkins ohne Ihre Anmeldeinformationen auf Azure zugreifen kannCreate an Azure service principal so Jenkins can access Azure without using your credentials.
  • Hinzufügen Ihres Dienstprinzipals zu JenkinsAdd your service principal to Jenkins.
  • Erstellen der Jenkins-Pipeline, die die Beispiel-App erstellt und bereitstellt, wenn Sie die App in GitHub aktualisierenCreate the Jenkins pipeline that builds and deploys the sample app each time you update the app in GitHub.
  • Erstellen von Build- und Bereitstellungsdateien für Ihre Jenkins-PipelineCreate build and deployment files for your Jenkins pipeline.
  • Verweisen Ihrer Jenkins-Pipeline auf das Build- und BereitstellungsskriptPoint your Jenkins pipeline at the build and deployment script.
  • Bereitstellen Ihrer Beispiel-App in Azure durch Ausführen eines manuellen BuildvorgangsDeploy your sample app to Azure by running a manual build.
  • Pushen eines App-Updates in GitHub, um Jenkins zu veranlassen, die App zu erstellen und erneut in Azure bereitzustellenPush an app update in GitHub, which triggers Jenkins to build and redeploy to Azure.

VoraussetzungenPrerequisites

Für dieses Tutorial benötigen Sie Folgendes:To complete this tutorial, you need these items:

Installieren von Jenkins-Plug-InsInstall Jenkins plug-ins

  1. Melden Sie sich unter folgender Adresse bei Ihrer Jenkins-Webkonsole an:Sign in to your Jenkins web console at this location:

    https://<Jenkins-server-name>.<Azure-region>.cloudapp.azure.com

  2. Wählen Sie auf der Hauptseite von Jenkins Manage Jenkins > Manage Plugins (Jenkins verwalten > Plug-Ins verwalten) aus.On the Jenkins main page, select Manage Jenkins > Manage Plugins.

    Verwalten von Jenkins-Plug-Ins

  3. Wählen Sie auf der Registerkarte Available (Verfügbar) folgende Plug-Ins aus:On the Available tab, select these plug-ins:

    Sollten diese Plug-Ins nicht angezeigt werden, überprüfen Sie auf der Registerkarte Installed (Installiert), ob sie bereits installiert sind.If these plug-ins don't appear, make sure they're not already installed by checking the Installed tab.

  4. Wählen Sie zum Installieren der ausgewählten-Plug-Ins die Option Download now and install after restart (Jetzt herunterladen und nach Neustart installieren) aus.To install your selected plug-ins, select Download now and install after restart.

  5. Wählen Sie nach Abschluss des Vorgangs im Jenkins-Menü Manage Jenkins (Jenkins verwalten) aus, um für weitere Schritte zur Verwaltungsseite von Jenkins zurückzukehren.After you're done, on the Jenkins menu, select Manage Jenkins so that you return to the Jenkins management page for future steps.

Forken des GitHub-BeispielrepositorysFork sample GitHub repo

  1. Melden Sie sich beim GitHub-Repository für die Spring Boot-Beispielanwendung an.Sign in to GitHub repo for the Spring Boot sample app.

  2. Wählen Sie in GitHub in der rechten oberen Ecke Fork aus.In the upper-right corner in GitHub, select Fork.

    Forken des Beispielrepositorys aus GitHub

  3. Folgen Sie den Anweisungen, um Ihr GitHub-Konto auszuwählen und das Forken abzuschließen.Follow the prompts to select your GitHub account and finish forking.

Richten Sie als Nächstes Jenkins mit Ihren GitHub-Anmeldeinformationen ein.Next, set up Jenkins with your GitHub credentials.

Herstellen einer Verbindung zwischen Jenkins und GitHubConnect Jenkins to GitHub

Aktivieren Sie GitHub-Webhooks in Jenkins, damit Jenkins GitHub überwachen und entsprechend reagieren kann, wenn neue Commits an die Web-App in Ihrem GitHub-Fork gepusht werden.To have Jenkins monitor GitHub and respond when new commits get pushed to your web app in your GitHub fork, enable GitHub webhooks in Jenkins.

Hinweis

Mit diesen Schritten werden Anmeldeinformationen für ein persönliches Zugriffstoken erstellt, um Jenkins die Zusammenarbeit mit GitHub zu ermöglichen. Dabei werden Ihr Benutzername und Ihr Kennwort für GitHub verwendet.These steps create personal access token credentials for Jenkins to work with GitHub by using your GitHub username and password. Sollte Ihr GitHub-Konto die zweistufige Authentifizierung verwenden, müssen Sie stattdessen Ihr Token in GitHub erstellen und Jenkins für die Verwendung dieses Tokens konfigurieren.However, if your GitHub account uses two-factor authentication, create your token in GitHub and set up Jenkins to use that token instead. Weitere Informationen finden Sie in der Dokumentation für das GitHub-Plug-In von Jenkins.For more information, see the Jenkins GitHub plug-in documentation.

  1. Wählen Sie auf der Seite Manage Jenkins (Jenkins verwalten) die Option Configure System (System konfigurieren) aus.From the Manage Jenkins page, select Configure System.

    Konfigurieren des Systems in Jenkins

  2. Geben Sie im Abschnitt GitHub Details für Ihren GitHub-Server an.In GitHub section, provide details for your GitHub server. Wählen Sie in der Liste Add GitHub Server (GitHub-Server hinzufügen) die Option GitHub Server (GitHub-Server) aus.From the Add GitHub Server list, select GitHub Server.

    Hinzufügen des GitHub-Servers in Jenkins

  3. Sollte die Eigenschaft Manage Hooks (Hooks verwalten) nicht ausgewählt sein, wählen Sie diese Eigenschaft aus.If the Manage hooks property isn't selected, select this property. Wählen Sie Advanced (Erweitert) aus, um weitere Einstellungen angeben zu können.Select Advanced so you can specify other settings.

    Angeben erweiterter Jenkins-Einstellungen für GitHub-Server

  4. Wählen Sie in der Liste Manage additional GitHub actions (Zusätzliche GitHub-Aktionen verwalten) die Option Convert login and password to token (Anmeldename und Kennwort in Token konvertieren) aus.From the Manage additional GitHub actions list, select Convert login and password to token.

    Konvertieren von Anmeldename und Kennwort in ein Token für GitHub

  5. Wählen Sie From login and password (Auf der Grundlage von Anmeldename und Kennwort) aus, um Ihren Benutzernamen und Ihr Kennwort für GitHub eingeben zu können.Select From login and password so you can enter your GitHub username and password. Wählen Sie anschließend Create token credentials (Tokenanmeldeinformationen erstellen) aus, um ein persönliches Zugriffstoken (Personal Access Token, PAT) für GitHub zu erstellen.When you're done, select Create token credentials, which creates a GitHub personal access token (PAT).

    Erstellen eines persönlichen Zugriffstokens für GitHub auf der Grundlage von Anmeldename und Kennwort

  6. Wählen Sie im Abschnitt GitHub Server (GitHub-Server) in der Liste mit den Anmeldeinformationen Ihr neues Token aus.In the GitHub Server section, from the Credentials list, select your new token. Wählen Sie Test connection (Verbindung testen) aus, um zu überprüfen, ob die Authentifizierung funktioniert.Check that authentication is working by choosing Test connection.

    Überprüfen der Verbindung mit dem GitHub-Server unter Verwendung des neuen persönlichen Zugriffstokens

Erstellen Sie als Nächstes den Azure-Dienstprinzipal, den Jenkins für die Authentifizierung von und den Zugriff auf Azure-Ressourcen benötigt.Next, create the Azure service principal that Jenkins uses for authenticating and accessing Azure resources.

Erstellen eines DienstprinzipalsCreate service principal

In einem späteren Abschnitt erstellen Sie einen Jenkins-Pipelineauftrag, der Ihre App auf der Grundlage von GitHub erstellt und in Azure App Service bereitstellt.In a later section, you create a Jenkins pipeline job that builds your app from GitHub and deploys your app to Azure App Service. Damit Jenkins auf Azure zugreifen kann, ohne Ihre Anmeldeinformationen eingeben zu müssen, erstellen Sie in Azure Active Directory einen Dienstprinzipal für Jenkins.To have Jenkins access Azure without entering your credentials, create a service principal in Azure Active Directory for Jenkins. Ein Dienstprinzipal ist eine separate Identität, die Jenkins für die Authentifizierung des Zugriffs auf Azure-Ressourcen verwenden kann.A service principal is a separate identity that Jenkins can use for authenticating access to Azure resources. Führen Sie zum Erstellen dieses Dienstprinzipals den Azure CLI-Befehl az ad sp create-for-rbac aus – entweder über Ihre lokale Befehlszeile oder über Azure Cloud Shell. Beispiel:To create this service principal, run the Azure CLI command az ad sp create-for-rbac, either from your local command line or Azure Cloud Shell, for example:

az ad sp create-for-rbac --name "yourAzureServicePrincipalName" --password yourSecurePassword

Der Dienstprinzipalname muss in Anführungszeichen gesetzt werden.Make sure you use quotation marks around the service principal name. Erstellen Sie außerdem ein sicheres Kennwort unter Berücksichtigung der Kennwortrichtlinien und -einschränkungen in Azure Active Directory.Also, create a strong password based on the Azure Active Directory password rules and restrictions. Wenn Sie kein Kennwort angeben, erstellt die Azure-Befehlszeilenschnittstelle ein Kennwort für Sie.If you don't provide a password, the Azure CLI creates a password for you.

Der Befehl create-for-rbac generiert die folgende Ausgabe:Here's the output generated by the create-for-rbac command:

{
   "appId": "yourAzureServicePrincipal-ID", // A GUID such as AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA
   "displayName": "yourAzureServicePrincipalName", // A user-friendly name for your Azure service principal
   "name": "http://yourAzureServicePrincipalName",
   "password": "yourSecurePassword",
   "tenant": "yourAzureActiveDirectoryTenant-ID" // A GUID such as BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB
}

Tipp

Falls Sie bereits über einen Dienstprinzipal verfügen, können Sie stattdessen diese Identität verwenden.If you already have a service principal, you can reuse that identity instead. Verwenden Sie die Eigenschaftswerte appId, password und tenant, wenn Sie Dienstprinzipalwerte für die Authentifizierung angeben.When providing service principal values for authentication, use the appId, password, and tenant property values. Verwenden Sie den Eigenschaftswert displayName, wenn Sie nach einem vorhandenen Dienstprinzipal suchen.When searching for an existing service principal, use the displayName property value.

Hinzufügen des Dienstprinzipals zu JenkinsAdd service principal to Jenkins

  1. Wählen Sie auf der Hauptseite von Jenkins Credentials > System (Anmeldeinformationen > System) aus.On the Jenkins main page, select Credentials > System.

  2. Wählen Sie auf der Seite System unter Domain (Domäne) die Option Global credentials (unrestricted) (Globale Anmeldeinformationen (uneingeschränkt)) aus.On the System page, under Domain, select Global credentials (unrestricted).

  3. Wählen Sie im linken Menü die Option Add Credentials (Anmeldeinformationen hinzufügen) aus.From the left menu, select Add Credentials.

  4. Wählen Sie in der Liste Kind (Art) die Option Azure Service Principal (Azure-Dienstprinzipal) aus.From the Kind list, select Azure Service Principal.

  5. Geben Sie die Informationen für Ihren Dienstprinzipal und Ihr Azure-Abonnement in die Eigenschaften ein, die in der Tabelle in diesem Schritt beschrieben sind:Provide the information for your service principal and Azure subscription in the properties described by the table in this step:

    Hinzufügen der Anmeldeinformationen für den Azure-Dienstprinzipal

    EigenschaftProperty WertValue BESCHREIBUNGDescription
    Abonnement-IDSubscription ID <yourAzureSubscription-ID><yourAzureSubscription-ID> Der GUID-Wert für Ihr Azure-Abonnement.The GUID value for your Azure subscription

    Tipp: Sollten Sie Ihre Azure-Abonnement-ID nicht kennen, führen Sie an der Befehlszeile oder in Cloud Shell den folgenden Azure CLI-Befehl aus, und verwenden Sie dann den id-GUID-Wert:Tip: If you don't know your Azure subscription ID, run this Azure CLI command from either the command line or in Cloud Shell, and then use the id GUID value:

    az account list

    Client-IDClient ID <yourAzureServicePrincipal-ID><yourAzureServicePrincipal-ID> Der appId-GUID-Wert, der zuvor für Ihren Azure-Dienstprinzipal generiert wurde.The appId GUID value previously generated for your Azure service principal
    Geheimer ClientschlüsselClient Secret <yourSecurePassword><yourSecurePassword> Der password-Wert (Geheimnis), den Sie für Ihren Azure-Dienstprinzipal angegeben haben.The password value or "secret" you provided for your Azure service principal
    Tenant IDTenant ID <yourAzureActiveDirectoryTenant-ID><yourAzureActiveDirectoryTenant-ID> Der tenant-GUID-Wert für Ihren Azure Active Directory-Mandanten.The tenant GUID value for your Azure Active Directory tenant
    IDID <yourAzureServicePrincipalName><yourAzureServicePrincipalName> Der displayName-Wert für Ihren Azure-Dienstprinzipal.The displayName value for your Azure service principal
  6. Wählen Sie Verify Service Principal (Dienstprinzipal überprüfen) aus, um zu überprüfen, ob Ihr Dienstprinzipal funktioniert.To confirm that your service principal works, select Verify Service Principal. Wenn Sie fertig sind, wählen Sie OK.When you're done, select OK.

Erstellen Sie als Nächstes die Jenkins-Pipeline, die Ihre App erstellt und bereitstellt.Next, create the Jenkins pipeline that builds and deploys your app.

Erstellen einer Jenkins-PipelineCreate Jenkins pipeline

Erstellen Sie in Jenkins den Pipelineauftrag für die Erstellung und Bereitstellung Ihrer App.In Jenkins, create the pipeline job for building and deploying your app.

  1. Kehren Sie zur Startseite von Jenkins zurück, und wählen Sie New Item (Neues Element) aus.Return to your Jenkins home page, and select New Item.

    Erstellen einer Jenkins-Pipeline

  2. Geben Sie einen Namen für Ihren Pipelineauftrag an (beispielsweise „My-Java-Web-App“), und wählen Sie Pipeline aus.Provide a name for your pipeline job, for example, "My-Java-Web-App", and select Pipeline. Wählen Sie unten OK aus.At the bottom, select OK.

    Benennen des Jenkins-Pipelineauftrags

  3. Richten Sie Jenkins mit Ihrem Dienstprinzipal ein, damit Jenkins Bereitstellungsvorgänge für Azure ausführen kann, ohne Ihre eigenen Anmeldeinformationen zu verwenden.Set up Jenkins with your service principal so Jenkins can deploy to Azure without using your own credentials.

    1. Wählen Sie auf der Registerkarte General (Allgemein) die Option Prepare an environment for the run (Umgebung für die Ausführung vorbereiten) aus.On the General tab, select Prepare an environment for the run.

    2. Fügen Sie im daraufhin angezeigten Feld Properties Content (Eigenschafteninhalt) die folgenden Umgebungsvariablen und deren Werte hinzu:In the Properties Content box that appears, add these environment variables and their values.

      AZURE_CRED_ID=yourAzureServicePrincipalName
      RES_GROUP=yourWebAppAzureResourceGroupName
      WEB_APP=yourWebAppName
      

      Auswählen einer Umgebung für die Ausführung und Festlegen der Umgebungsvariablen

  4. Klicken Sie auf Speichern, wenn Sie fertig sind.When you're done, select Save.

Erstellen Sie als Nächstes Build- und Bereitstellungsskripts für Jenkins.Next, create build and deployment scripts for Jenkins.

Erstellen von Build- und BereitstellungsdateienCreate build and deployment files

Erstellen Sie nun die Dateien, die Jenkins für die Erstellung und Bereitstellung Ihrer App benötigt.Now create the files that Jenkins uses for building and deploying your app.

  1. Erstellen Sie im Ordner src/main/resources/ Ihres GitHub-Forks eine App-Konfigurationsdatei namens web.config mit dem folgenden XML-Code, und ersetzen Sie dabei $(JAR_FILE_NAME) durch gs-spring-boot-0.1.0.jar:In your GitHub fork's src/main/resources/ folder, create this app configuration file named web.config, which contains this XML but replace $(JAR_FILE_NAME) with gs-spring-boot-0.1.0.jar:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
       <system.webServer>
          <handlers>
             <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
          </handlers>
          <httpPlatform processPath="%JAVA_HOME%\bin\java.exe" arguments="-Djava.net.preferIPv4Stack=true -Dserver.port=%HTTP_PLATFORM_PORT% -jar &quot;%HOME%\site\wwwroot\${JAR_FILE_NAME}&quot;"></httpPlatform>
       </system.webServer>
    </configuration>
    
  2. Erstellen Sie im Stammordner Ihres GitHub-Forks ein Build- und Bereitstellungsskript namens Jenkinsfile mit folgendem Text (GitHub-Quelle):In your GitHub fork's root folder, create this build and deployment script named Jenkinsfile, which contains this text (source in GitHub here):

    node {
       stage('init') {
          checkout scm
       }
       stage('build') {
          sh '''
             mvn clean package
             cd target
             cp ../src/main/resources/web.config web.config
             cp todo-app-java-on-azure-1.0-SNAPSHOT.jar app.jar 
             zip todo.zip app.jar web.config
          '''
       }
       stage('deploy') {
          azureWebAppPublish azureCredentialsId: env.AZURE_CRED_ID,
          resourceGroup: env.RES_GROUP, appName: env.WEB_APP, filePath: "**/todo.zip"
       }
    }
    
  3. Committen Sie die Dateien web.config und Jenkinsfile in Ihrem GitHub-Fork, und pushen Sie Ihre Änderungen.Commit both web.config and Jenkinsfile files to your GitHub fork, and push your changes.

Verweisen der Pipeline auf das SkriptPoint pipeline at script

Geben Sie nun das Build- und Bereitstellungsskript an, das von Jenkins verwendet werden soll.Now specify the build and deployment script you want Jenkins to use.

  1. Wählen Sie in Jenkins Ihren zuvor erstellten Pipelineauftrag aus.In Jenkins, select your previously created pipeline job.

    Auswählen des Jenkins-Pipelineauftrags für Ihre Web-App

  2. Wählen Sie im linken Menü die Option Configure (Konfigurieren) aus.On the left menu, select Configure.

  3. Wählen Sie auf der Registerkarte Pipeline in der Liste Definition die Option Pipeline script from SCM (Pipeline-Skript von SCM) aus.On the Pipeline tab, from the Definition list, select Pipeline script from SCM.

    1. Wählen Sie im daraufhin angezeigten Feld SCM die Option Git als Quellcodeverwaltung aus.In the SCM box that appears, select Git as your source control.

    2. Geben Sie im Abschnitt Repositories (Repositorys) für Repository URL (Repository-URL) die URL Ihres GitHub-Forks ein. Beispiel:In the Repositories section, for Repository URL, enter your GitHub fork's URL, for example:

      https://github.com/<your-GitHub-username>/gs-spring-boot

    3. Wählen Sie unter Credentials (Anmeldeinformationen) das persönliche Zugriffstoken für GitHub aus, das Sie zuvor erstellt haben.For Credentials, select your previously created GitHub personal access token.

    4. Fügen Sie im Feld Script Path (Skriptpfad) den Pfad des Skripts „Jenkinsfile“ hinzu.In the Script Path box, add the path to your "Jenkinsfile" script.

    Danach sollte Ihre Pipelinedefinition wie im folgenden Beispiel aussehen:When you're done, your pipeline definition looks like this example:

    Verweisen der Jenkins-Pipeline auf das Skript

  4. Klicken Sie auf Speichern, wenn Sie fertig sind.When you're done, select Save.

Erstellen Sie als Nächstes Ihre App, und stellen Sie sie in Azure App Service bereit.Next, build and deploy your app to Azure App Service.

Erstellen und Bereitstellen in AzureBuild and deploy to Azure

  1. Erstellen Sie unter Verwendung der Azure-Befehlszeilenschnittstelle (entweder über die Befehlszeile oder über Azure Cloud Shell) eine Azure App Service-Web-App unter Linux, bei der Jenkins Ihre Web-App nach Abschluss eines Buildvorgangs bereitstellt.With the Azure CLI, either from the command line or Azure Cloud Shell, create an Azure App Service web app on Linux where Jenkins deploys your web app after finishing a build. Stellen Sie sicher, dass Ihre Web-App einen eindeutigen Namen hat.Make sure your web app has a unique name.

    az group create --name yourWebAppAzureResourceGroupName --location yourAzureRegion
    az appservice plan create --name yourLinuxAppServicePlanName --resource-group yourWebAppAzureResourceGroupName --is-linux
    az webapp create --name yourWebAppName --resource-group yourWebAppAzureResourceGroupName --plan yourLinuxAppServicePlanName --runtime "java|1.8|Tomcat|8.5"
    

    Weitere Informationen zu diesen Azure CLI-Befehlen finden Sie auf den folgenden Seiten:For more information about these Azure CLI commands, see these pages:

  2. Wählen Sie in Jenkins Ihren Pipelineauftrag und anschließend Build Now (Jetzt erstellen) aus.In Jenkins, select your pipeline job, and select Build Now.

    Nach Abschluss des Buildvorgangs stellt Jenkins Ihre App bereit, die nun in Azure unter der Veröffentlichungs-URL live geschaltet ist. Beispiel:After the build finishes, Jenkins deploys your app, which is now live on Azure at the publication URL, for example:

    http://<your-Java-web-app>.azurewebsites.net

    Anzeigen Ihrer bereitgestellten App in Azure

Pushen von Änderungen und erneutes BereitstellenPush changes and redeploy

  1. Navigieren Sie in Ihrem Webbrowser zum folgenden Ort im GitHub-Fork Ihrer Web-App:In your web browser, go to this location in your web app's GitHub fork:

    complete/src/main/java/Hello/Application.java

  2. Wählen Sie in GitHub in der rechten oberen Ecke Edit this file (Diese Datei bearbeiten) aus.From the upper-right corner in GitHub, select Edit this file.

  3. Nehmen Sie folgende Änderung an der Methode commandLineRunner() vor, und committen Sie die Änderung im master-Branch des Repositorys.Make this change to the commandLineRunner() method, and commit the change to the repo's master branch. Durch diesen Commit im master-Branch wird ein Buildvorgang in Jenkins gestartet.This commit in the master branch starts a build in Jenkins.

    System.out.println("Let's inspect the beans provided by Spring Boot on Azure");
    
  4. Aktualisieren Sie Ihre App nach Abschluss des Buildvorgangs und der erneuten Jenkins-Bereitstellung in Azure. Sie verfügt nun über das Update.After the build finishes, and Jenkins redeploys to Azure, refresh your app, which now shows your update.

    Anzeigen Ihrer bereitgestellten App in Azure

Behandeln von Problemen mit dem Jenkins-Plug-InTroubleshooting the Jenkins plug-in

Sollten Fehler für das Jenkins-Plug-In auftreten, können Sie diese auf der Jenkins-JIRA-Seite für die jeweilige Komponente melden.If you encounter any bugs with the Jenkins plug-ins, file an issue in the Jenkins JIRA for the specific component.

Nächste SchritteNext steps