Azure 管道空工件

问题描述 投票:0回答:1

我正在尝试创建一个构建管道,然后部署到我的登台和实时服务器上。 我使用下面的 YML 来构建我的管道,但生成的工件是空的

trigger:
- main

variables:
  uiSource: 'dashboard'

pool:
  vmImage: 'windows-2019'

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

- script: |
    pushd $(uiSource)
    npm install
    npm run build
    popd
  displayName: 'npm install and build'
    
- task: PublishPipelineArtifact@0
  displayName: 'Publish pipeline artifact'
  inputs:
    artifactName: 'myArtifact'
    targetPath: '$(Build.ArtifactStagingDirectory)'

我尝试添加,但这只会复制目录中的所有内容。我只对生成的构建感兴趣。

- task: CopyFiles@2
  displayName: Copy file into artifacts
  inputs:
    SourceFolder: '$(Build.SourcesDirectory)'
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

我尝试在 VS 代码中运行 npm build 它工作正常并创建了一个构建文件夹。 构建的结果是手动部署的,并且工作正常。我只是想在这里复制相同的内容

我已经将它更新到下面,但它仍然生成空的 zip 文件

    trigger:
  batch: true
  branches:
    include:
      - main

  paths:
    include:
    - dashboard/*

pool:
  vmImage: 'windows-2019'

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

- script: |
    npm install
    npm run build
  displayName: 'npm install and build'
  workingDirectory: 'dashboard/'

- task: ArchiveFiles@2
  displayName: 'Archive files'
  inputs:
    rootFolderOrFile: '$(Build.ArtifactStagingDirectory)'
    includeRootFolder: false
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/FrontEnd.zip'
    replaceExistingArchive: true
    
- task: PublishBuildArtifacts@1
  name: 'PublishArtifacts'
  displayName: 'Publish Artifacts'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'FrontEnd'
    publishLocation: 'Container'
azure azure-devops azure-pipelines azure-pipelines-release-pipeline
1个回答
0
投票

'npm install and build'
后,添加复制任务并更改SourceFolder名称。如果它在本地命名为'build',它应该是
SourceFolder: 'build'

- task: CopyFiles@2
  displayName: 'Copy Files to Artifact Staging Directory'
  inputs:
    SourceFolder: 'public'
    Contents: '**'
    TargetFolder: '$(build.artifactstagingdirectory)'
    CleanTargetFolder: true
    OverWrite: true

我一般用zip和PublishBuildArtifacts@1.

- task: ArchiveFiles@2
  displayName: 'Zip Artifact Staging Directory to yourproject.zip'
  inputs:
    rootFolderOrFile: '$(Build.ArtifactStagingDirectory)'
    includeRootFolder: false
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/yourproject.zip'
    replaceExistingArchive: true

- task: PublishBuildArtifacts@1
  displayName: 'Publish Build Artifacts'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)/yourproject.zip'
    ArtifactName: 'your-project'
    publishLocation: 'Container'
© www.soinside.com 2019 - 2024. All rights reserved.