Erstellen einer Multi-Platform-Pipeline

Azure Pipelines

Dies ist eine Schritt-für-Schritt-Anleitung zur Verwendung von Azure Pipelines für die Erstellung unter macOS, Linux und Windows.

Voraussetzungen

Stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Ein GitHub, in dem Sie ein Repository erstellen können. Wenn Sie noch keines besitzen, können Sie es kostenlos erstellen.

  • Eine Azure DevOps-Organisation. Wenn Sie noch keines besitzen, können Sie es kostenlos erstellen. (Eine Azure DevOps-Organisation unterscheidet sich von Ihrer GitHub-Organisation. Sie können Ihrer DevOps-Organisation und Ihrer GitHub-Organisation den gleichen Namen geben, wenn Sie sie aufeinander abstimmen möchten.)

    Wenn Ihr Team bereits über eine solche Organisation verfügt, stellen Sie sicher, dass Sie Administrator des Azure DevOps-Projekts sind, das Sie verwenden möchten.

  • Möglichkeit zum Ausführen von Pipelines auf von Microsoft gehosteten Agents. Sie können entweder einen Parallelauftrag erwerben oder einen Free-Tarif anfordern. Eine Anleitung zum Anfordern eines Free-Tarifs finden Sie in diesem Artikel. Beachten Sie, dass es zwei bis drei Werktage dauern kann, bis der Free-Tarif gewährt wird.

Beispielcode herunterladen

Sie können Azure Pipelines, um eine App in einer beliebigen Sprache auf mehreren Plattformen gleichzeitig zu erstellen.

  1. Gehe zu https://github.com/Azure-Samples/js-e2e-express-server.

  2. Forken Sie das Repository in Ihr eigenes GitHub Konto.

Sie sollten nun über eine Beispiel-App in Ihrem GitHub verfügen.

Hinzufügen einer Pipeline

Im Beispiel-Repository gibt es noch keine Pipeline. Sie fügen Aufträge hinzu, die auf drei Plattformen ausgeführt werden.

  1. Wechseln Sie zum Fork des Beispielcodes auf GitHub.

  2. Wählen Sie "Create new file" (Neue Datei erstellen) aus. Nennen Sie die azure-pipelines.yml Datei , und geben Sie ihr den folgenden Inhalt.

# Build NodeJS Express app using Azure Pipelines
# https://docs.microsoft.com/azure/devops/pipelines/ecosystems/javascript?view=azure-devops
strategy:
  matrix:
    linux:
      imageName: 'ubuntu-latest'
    mac:
      imageName: 'macOS-latest'
    windows:
      imageName: 'windows-latest'

pool:
  vmImage: $(imageName)

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '8.x'

- script: |
    npm install
    npm test

- task: PublishTestResults@2
  inputs:
    testResultsFiles: '**/TEST-RESULTS.xml'
    testRunTitle: 'Test results for JavaScript'

- task: PublishCodeCoverageResults@1
  inputs: 
    codeCoverageTool: Cobertura
    summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/*coverage.xml'
    reportDirectory: '$(System.DefaultWorkingDirectory)/**/coverage'

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
    includeRootFolder: false

- task: PublishBuildArtifacts@1

Wählen Sie unten im Editor GitHub Commit changes (Änderungen commiten) aus.

Jeder Auftrag in diesem Beispiel wird auf einem anderen VM-Image ausgeführt. Standardmäßig werden die Aufträge gleichzeitig parallel ausgeführt.

Hinweis: Wird im nativen Skriptinterpreter jeder Plattform script ausgeführt: Bash unter macOS und Linux, CMD auf Windows. Weitere Informationen finden Sie unter Skripts für mehrere Plattformen.

Erstellen der Pipeline

Nachdem Sie Ihr repository GitHub mit einer Pipeline konfiguriert haben, können Sie es erstellen.

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie zu Ihrem Projekt.

  2. Wechseln Sie in Ihrem Projekt zur Seite Pipelines, und wählen Sie dann Neue Pipeline aus.

  3. Wählen GitHub als Speicherort ihres Quellcodes aus.

    Select GitHub

  4. Wählen Sie für Repositorydie Option Autorisieren und dann Autorisieren mit OAuth aus.

  5. Möglicherweise werden Sie zu GitHub weitergeleitet, um sich anzumelden. Geben Sie in diesem Fall Ihre Anmeldeinformationen GitHub ein. Wählen Sie das Beispiel-App-Repository aus, Azure Pipelines sie zurück an das Repository der Beispiel-App umgeleitet wurden.

  6. Für die Vorlageanalysiert Azure Pipelines Code in Ihrem Repository. Wenn Ihr Repository bereits eine Datei enthält (wie in diesem azure-pipelines.yml Fall), wird dieser Schritt übersprungen. Andernfalls Azure Pipelines eine Startvorlage basierend auf dem Code in Ihrem Repository empfohlen.

  7. Azure Pipelines zeigt Ihnen die YAML-Datei, die sie zum Erstellen Ihrer Pipeline verwendet.

  8. Wählen Sie Speichern und ausführenaus, und wählen Sie dann die Option Commit direkt in den Hauptzweig ausführen aus.

  9. Die YAML-Datei wird an Ihr GitHub-Repository pusht, und ein neuer Build wird automatisch gestartet. Warten Sie, bis der Buildvorgang abgeschlossen ist.

Häufig gestellte Fragen

Kann ich meine Pipeline für mehrere Plattformen sowohl auf selbst gehosteten als auch auf von Microsoft gehosteten Agents erstellen?

Wie im folgenden Beispiel zu sehen, müssen Sie sowohl eine als auch eine vmImagePool Variable angeben. Geben Sie für den gehosteten Agent als Poolnamen an, und lassen Sie für selbstge gehostete Agents Azure Pipelines das Feld vmImage leer. Das Leerzeichen für den selbstge gehosteten Agent kann zu einigen ungewöhnlichen Einträgen in den Protokollen führen, wirkt sich jedoch nicht vmImage auf die Pipeline aus.

strategy:
  matrix:
    microsofthosted:
      poolName: Azure Pipelines
      vmImage: ubuntu-latest

    selfhosted:
      poolName: FabrikamPool
      vmImage:

pool:
  name: $(poolName)
  vmImage: $(vmImage)

steps:
- checkout: none
- script: echo test

Nächste Schritte

Sie haben gerade die Grundlagen der Verwendung mehrerer Plattformen mit Azure Pipelines. Hier erfahren Sie mehr über:

Weitere Informationen zum Erstellen GitHub Repositorys finden Sie unter Erstellen GitHub Repositorys.