Extraire le référentiel github dans le pipeline ADO [YAML]

Nov 07 2020

J'ai un référentiel github: https://github.com/user-name/repo-name

Je suis ce doc https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/multi-repo-checkout?view=azure-devops#faqpour extraire plusieurs référentiels. Voici mon fichier yaml:

name: 1.0

resources:
  repositories:
  - repository: MyGitHubRepo
    type: github
    endpoint: https://github.com/user-name/repo-name
    name: repo-name
    ref: master

trigger:
- master
- develop
- features/*

pool:
  vmImage: "vs2017-win2016"

variables:
  "BuildConfiguration": 'debug'
  "BuildPlatform": 'any cpu'

stages:

- checkout: MyGitHubRepo
- template: build.yml@MyGitHubRepo

Réponses

1 RoderickBant Nov 07 2020 at 19:29

Le problème est dans le repositories.endpointcadre. Le endpointparamètre doit référencer un projet Azure Devops Service connection. Une connexion de service de projet est une référence à un service ou une ressource au niveau du projet dans Azure DevOps qui vous permet de stocker des informations d'identification, etc. pour référencer des ressources et des services en toute sécurité sans avoir besoin de stocker les informations d'identification pour ces ressources dans votre code. Les tâches et azure-pipelines.yamlpropriétés spécifiques du pipeline Azure peuvent facilement référencer les connexions de service.

Pour configurer une connexion de service, cliquez sur Project settingsen bas de la page dans le navigateur dans votre projet Azure DevOps. Puis dans le menu de gauche sous Pipelinescliquez Service connections. En haut à droite de la page, cliquez New service connectionet choisissez GitHubet cliquezNext

Sur la page suivante, sélectionnez Grant authorizations'il n'est pas déjà sélectionné. Choisissez AzurePipelinesla configuration OAuth et cliquez sur Authorize. Confirmez la fenêtre contextuelle GitHub et entrez vos informations d'identification GitHub pour ce faire. Cliquez ensuite Authorize Azure pipelinessur la boîte de dialogue d'autorisation GitHUb. Revenez ensuite sur la page Azure DevOps, notez le nom de la connexion au service pour référence ultérieure et cliquez Savepour terminer la création de la connexion au service.

Puis revenez à votre azure-pipelines.yamlmodification comme ci-dessous:

resources:
  repositories:
  - repository: MyGitHubRepo
    type: github
    endpoint: name_of_service_connection_you_created
    name: github-user-name/repo-name
    ref: master

Assurez-vous de définir le typesur GitHub et prenez soin de définir la namevaleur sur la combinaison de votre nom d'utilisateur GitHub et du nom du référentiel, comme username/reponame.

La référence pour la ressource de référentiel dans azure-pipelines.yamlpeut être trouvée dans le schéma YAML

La documentation pour la création peut être trouvée ici

1 VitoLiu-MSFT Nov 11 2020 at 09:03

Pas:

Connectez-vous à la page de jeton GitHub et créez un jeton PAT.

Ouvrez les paramètres du projet-> Connexions de service-> Cliquez sur le bouton New service connectionet sélectionnez le type GitHub pour créer une connexion GitHub.

L'exemple que j'ai partagé est de publier le dépôt GitHub en tant qu'artéfacts.

Repo GitHub.

Échantillon YAML:

resources:
  repositories:
  - repository: vitol
    type: github
    endpoint: GithubTest
    name:  vitoliutest/vitol

trigger:
  - none
pool:
  name: Hosted Ubuntu 1604
steps:
  - checkout: vitol
  - task: CopyFiles@2
    inputs:
      SourceFolder: '$(Agent.BuildDirectory)' Contents: '**' TargetFolder: '$(build.artifactstagingdirectory)'
    
  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(build.artifactstagingdirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

Remarque: veuillez noter l'étape checkout, elle est utilisée pour vérifier le dépôt GitHub.

Résultat