Как получить (воссоздать) маркер носителя, используемый в конвейерах AzureDevOps? - PullRequest
0 голосов
/ 14 февраля 2020

У меня произошел сбой развертывания инфраструктуры yaml в yaml, который завершается неудачей на первом шаге yaml:

- task: ArchiveFiles@1
  displayName: 'Archive createADPDC.ps1 DSC files '
  inputs:
    rootFolder: 'Core/Templates/createADPDC.ps1'
    includeRootFolder: false
    replaceExistingArchive: true
    archiveFile: '$(Build.ArtifactStagingDirectory)/createADPDC.ps1.zip'

Чтобы устранить эту проблему, я начал построчную попытку смоделировать то, что делается на хост-серверах конвейера, и я застреваю на токене на предъявителя. Если нет лучшего способа диагностировать, почему файлы отсутствуют в ArtifactStagingDirectory, я запускаю команды ниже для проверки загружаемых файлов и структуры.

git init "C:\a\1\s"
Initialized empty Git repository in C:/a/1/s/.git/
git remote add origin https://MyLabs@dev.azure.com/MyLabs/Core/_git/Core
git config gc.auto 0
git config --get-all http.https://MyLabs@dev.azure.com/MyLabs/Core/_git/Core.extraheader
git config --get-all http.proxy                                                                            
git -c http.extraheader="AUTHORIZATION: bearer ***" fetch --force --tags --prune --progress --no-recurse-submodules origin
fatal: Authentication failed for 'https://dev.azure.com/MyLabs/Core/_git/Core/'

Вопрос

Либо:

  1. Как лучше определить или понять, почему ArchiveFiles возвращает

[ошибка] ENOENT: нет такого файл или каталог, статистика 'D: \ a \ 1 \ s \ Core \ Templates \ createADPD C .ps1'

Как правильно получить токен носителя (PAT?) Для использования в командной строке, расположенной в журналах

Ответы [ 2 ]

1 голос
/ 15 февраля 2020

Так что, вероятно, неплохо бы получить представление о структуре каталогов, используемой в конвейере.

  • \agent_work\1 $ (Agent.BuildDirectory)
    • \agent_work\1\a $ (Build.ArtifactStagingDirectory)
    • \agent_work\1\b $ (Build.BinariesDirectory)
    • \agent_work\1\s $ (Build.SourcesDirectory)

  • $ (Agent.BuildDirectory) where all folders for a given build pipeline are created

    • $ (Build.ArtifactStagingDirectory) artifacts are copied to before being pushed to their destination.
    • $ (Build.BinariesDirectory) you can use as an output folder for compiled binaries
    • $ (Build.SourcesDirectory) where your source code files are downloaded

Ссылки для Переменные и SystemAccessToken


Из сообщения об ошибке это выглядит как rootFolder расположение относительно $(Build.SourcesDirectory). Чтобы лучше рассмотреть ваши файлы внутри $(Agent.BuildDirectory), мне нравится использовать команду tree.

- task: PowerShell@2
  displayName: tree $(Agent.BuildDirectory)
  inputs:
    targetType: 'inline'
    script: 'tree /F'
    pwsh: true
    workingDirectory: '$(Agent.BuildDirectory)'
1 голос
/ 15 февраля 2020
  1. Вы уверены, что каталог правильный?
  2. Доступ к PAT в сценариях конвейера можно получить с помощью $ (system.accesstoken). Убедитесь, что вы включили постоянные данные на уровне задания в yml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...