AzureDevOps Дублировать папку dist в конвейерах сборки? Почему? - PullRequest
0 голосов
/ 09 ноября 2019

В артефактах, создаваемых AzureDevOps -> Pipelines, имеется дубликат папки dist, дубликат - это папка / dist, а также папка / drop / dist. РЕДАКТИРОВАТЬ: полный файл azure-pipeline.yml

# Node.js with Angular
# Build a Node.js project that uses Angular.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

# Major modification referencing
# https://dev.to/thisdotmedia/continuously-integrating-angular-with-azure-devops-2k9l

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '10.x'
  displayName: 'Install Node.js'

# Build angular app area
- script: npm install
  displayName: 'npm install'

- script: npx ng build --prod
  displayName: 'npm build'

# Testing area
- script: npm install puppeteer --save-dev
  displayName: 'Installing puppeteer (Headless browser for testing)'

- script: npx ng test --watch=false --codeCoverage=true
  displayName: 'Running Tests'

- task: PublishTestResults@2
  condition: succeededOrFailed()
  inputs:
    testResultsFormat: 'JUnit'
    testResultsFiles: '**/TEST-*.xml'
  displayName: 'Publish Test Results'

# Publishing items
#   deploy.psl (Powershell script to deploy)
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: 'deploy.ps1'
    ArtifactName: 'drop'
    publishLocation: 'Container'

#   Firebase.json
- task: PublishBuildArtifacts@1    
  displayName: 'Publish Artifact: Firebase.json'
  inputs:
    PathtoPublish: 'firebase.json'
    ArtifactName: 'drop'
    publishLocation: 'Container'

#   App
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: 'dist'
    ArtifactName: 'drop/dist'
    publishLocation: 'Container'
  displayName: 'Publish Artifacts'

#   Code Coverage Results
- task: PublishCodeCoverageResults@1
  condition: succeededOrFailed()
  inputs:
    codeCoverageTool: 'Cobertura'
    summaryFileLocation: '$(Build.SourcesDirectory)/coverage/ng-azure-devops/cobertura-coverage.xml'
  displayName: 'Publish Code Coverage Results'

- script: npx ng lint
  displayName: 'Code Analysis'

Я пробовал использовать «drop» в качестве ArtifactName, которое НЕ будет создавать дубликат артефакта папки в любом месте. Меня очень смущает, почему «drop / dist» создаст другой артефакт «/ dist»

Image showing duplication of the dist folder

1 Ответ

1 голос
/ 12 ноября 2019

AzureDevOps Дублировать папку dist в конвейерах сборки? Почему?

Я мог бы воспроизвести эту проблему на моей стороне.

Когда мы используем публикацию папки артефактов dist с ArtifactName: drop/dist, Azure Devops создастНовая папка drop сначала , затем публикация папки артефактов dist в эту папку drop.

Вы можете получить это сообщение из журнала сборки:

Загрузить '/ home / vsts / work / 1 / s / dist' в файловый контейнер: '# / 3620698 / drop/ dist '

Однако папка drop уже присутствует по умолчанию. Когда мы публикуем папку dist с помощью ArtifactName: drop/dist, есть две папки drop, и разработчики Azure опубликуют папку dist в этих двух папках drop:

enter image description here

Для более ясного понимания этой проблемы вы можете отключить Многоступенчатые конвейеры в Функции предварительного просмотра ,тогда вы получите вывод:

enter image description here

Очевидно, , здесь есть две папки drop, вот почемувы получаете папку Duplicate dist в конвейере сборки.

Итак, чтобы решить эту проблему, мы можем изменить ArtifactName: drop/dist на ArtifactName: dropTest/dist:

enter image description here

Теперь дубликат папки dist исчезает.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...