У меня есть многоступенчатый конвейер сборки azure для приложения nodejs.
На первом этапе я собираю исходный код и копирую артефакты в промежуточный каталог (Build.ArtifactStagingDirectory
) и на третьем этапе конвейера сборки azure я пытаюсь опубликовать sh артефактов, используя задачу PublishBuildArtifacts@1.
Но я получаю следующее предупреждение:
Каталог '/ home / vsts / work / 1 / a' пуст. Ничего не будет добавлено к артефакту сборки "drop".
Я также пытался выполнить задачу PipelineArtifacts.
Ниже приведен обзор конвейера сборки. ![enter image description here](https://i.stack.imgur.com/3Vrzu.png)
azure -pipelines.yml
trigger:
- master
- feature
pool:
vmImage: 'ubuntu-latest'
stages:
- stage: BuildApplication
jobs:
- job: InstallNodejs
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Step for installing Node.js'
- job: PrepareSonarCloud
steps:
- task: SonarCloudPrepare@1
inputs:
SonarCloud: ******
organization: ****
scannerMode: 'CLI'
configMode: 'manual'
cliProjectKey: ******
cliProjectName: ******
cliSources: '.'
condition: |
and
(
succeeded(),
eq(variables['Build.Reason'], 'Pull Request'),
eq(variables['System.PullRequest.TargetBranch'], 'master')
)
- job: BuildNodejs
steps:
- script: |
npm install
npm run build
displayName: 'npm install and build'
- job: CopyFiles
steps:
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)
targetFolder: $(Build.ArtifactStagingDirectory)
displayName: Copy Files to Staging Directory
- stage: StaticCodeAnalysis
jobs:
- job: AnalyzeSonarcloud
steps:
- task: SonarCloudAnalyze@1
displayName: 'Run SonarCloud code analysis'
condition: |
and
(
succeeded(),
eq(variables['Build.Reason'], 'Pull Request'),
eq(variables['System.PullRequest.TargetBranch'], 'master')
)
- job: PublishCodeAnalysisReport
steps:
- task: SonarCloudPublish@1
displayName: 'Publish SonarCloud quality gate results'
inputs:
pollingTimeoutSec: '300'
condition: |
and
(
succeeded(),
eq(variables['Build.Reason'], 'Pull Request'),
eq(variables['System.PullRequest.TargetReason'], 'master')
)
- stage: UploadArtifact
jobs:
- job: PublishBuildArtifact
steps:
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)
artifactName: drop
Вот журнал задач для копирования файлов. Он копирует файлы из исходного каталога в промежуточный каталог
![Here is the log for copy files task. It's copying the files from source directory to staging directory](https://i.stack.imgur.com/ABXgj.png)
На рисунке ниже показан журнал для задачи PublishBuildArtifact
![image shows the log for PublishBuildArtifact task](https://i.stack.imgur.com/8E1MM.png)