Auslösen einer Azure Pipelines-Ausführung in GitHub Actions

Azure DevOps Services

Erste Schritte GitHub Actions mit Azure Pipelines verwenden. GitHub Actions Ihnen helfen, Ihre Softwareentwicklungsworkflows von GitHub aus zu automatisieren. Sie können Workflows an demselben Ort bereitstellen, an dem Sie Code speichern und an Pull Requests und Problemen zusammenarbeiten.

Wenn Sie sowohl Azure Pipelines als auch GitHub Actions Workflows haben, möchten Sie möglicherweise eine Pipeline aus einer GitHub Aktion auslösen. Beispielsweise verfügen Sie möglicherweise über einen bestimmten Satz von Pipelineaufgaben, die Sie aus Ihrem GitHub Actions-Workflow auslösen möchten. Sie können eine Pipeline mit der Azure Pipelines Aktion auslösen.

Voraussetzungen

Authentifizieren mit Azure Pipelines

Verwenden Sie ein persönliches Zugriffstoken (PAT), um Ihr GitHub Konto mit Azure DevOps zu verbinden. Sie können einen PAT aus Azure DevOps generieren und dann als GitHub Geheimschlüssel speichern. Verweisen Sie in Ihrem GitHub Workflow auf den geheimen Schlüssel, damit ihre GitHub Aktion sich bei Ihrem Azure DevOps Projekt authentifizieren kann.

  1. Öffnen Sie Ihr GitHub-Repository, und navigieren Sie zu Einstellungen.

    Select Settings in GitHub

  2. Wählen Sie "Geheime Schlüssel " und dann "Neuer Repositoryschlüssel" aus.

    Choose to add a secret

  3. Fügen Sie Ihren PAT ein, und geben Sie ihn den Namen AZURE_DEVOPS_TOKEN.

  4. Speichern Sie die Änderungen, indem Sie die Option Add secret (Geheimnis hinzufügen) auswählen.

Erstellen eines GitHub Workflows, der eine Pipeline auslöst

GitHub Workflows sind eine Reihe von Aktionen (z. B. Aufgaben in Azure Pipelines). Verwenden Sie die Azure Pipelines-Aktion, um eine Pipelineausführung auszulösen.

Führen Sie die folgenden Schritte aus, um einen Workflow aus GitHub Actions zu erstellen. Anschließend können Sie den Workflow anpassen, um Ihren Anforderungen gerecht zu werden. Der relevante Abschnitt für die Verbindung mit Azure Pipelines ist die Azure Pipelines Aktion.

  1. Erstellen Sie in Ihrem Repository auf GitHub eine YAML-Datei im .github/workflows Verzeichnis.

  2. Kopieren Sie den folgenden Inhalt in Ihre YAML-Datei. Passen Sie die azure-devops-project-url Werte an azure-pipeline-name . Das azure-devops-project-url sollte keinen nachgestellten Schrägstrich haben.

    name: CI
    
    # Run this workflow every time a commit gets pushed to main or a pull request gets opened against main
    on:
      push:
        branches:
          - main
      pull_request:
        branches: 
          - main
    
    jobs:
        build:
            name: Call Azure Pipeline
            runs-on: ubuntu-latest
            steps:
            - name: Azure Pipelines Action
              uses: Azure/pipelines@v1
              with:
                azure-devops-project-url: https://dev.azure.com/organization/project-name
                azure-pipeline-name: 'My Pipeline'
                azure-devops-token: ${{ secrets.AZURE_DEVOPS_TOKEN }}
    
  3. Commit und Push ihrer Workflowdatei.

  4. Der Workflow wird jedes Mal ausgeführt, wenn Sie einen Commit zum Haupt- oder Öffnen einer Pullanforderung gegen Main pushen. Um zu überprüfen, ob Ihre Aktion ausgeführt wurde, öffnen Sie Ihr GitHub Repository, und wählen Sie "Aktionen" aus.

    Select Actions in the GitHub navigation

  5. Wählen Sie den Workflowtitel aus, um weitere Informationen zur Ausführung anzuzeigen. Sie sollten ein grünes Häkchen für die Azure Pipelines Aktion anzeigen. Öffnen Sie die Aktion, um einen direkten Link zur Pipelineausführung anzuzeigen.

    GitHub Actions detailed run

Überlegungen zu Zweigen

Die Pipeline, auf die Ihre Zweigstelle ausgeführt wird, hängt davon ab, ob sich Ihre Pipeline in derselben Repo wie Ihre GitHub Workflowdatei befindet.

  • Wenn sich die Pipeline und der GitHub-Workflow in unterschiedlichen Repositorys befinden, wird die ausgelöste Pipelineversion in der von Standard branch angegebenen Branch für manuelle und geplante Builds ausgeführt.
  • Wenn sich die Pipeline und der GitHub-Workflow im gleichen Repository befinden, wird die ausgelöste Pipelineversion in derselben Verzweigung wie die Triggerpipeline ausgeführt.

Informationen zum Konfigurieren des Standardzweigs für manuelle und geplante Builds finden Sie unter Standardzweig für manuelle und geplante Builds.

Bereinigen von Ressourcen

Wenn Sie ihren GitHub Workflow nicht weiterhin verwenden möchten, deaktivieren Sie den Workflow.

Nächste Schritte