使用两个单独的存储库(因为我就是这样继承它们的)我正在尝试运行一个自定义脚本来构建一个仅限 JS 的应用程序,然后将该应用程序与一个 C# API 应用程序一起复制和部署,该应用程序位于一个第二个存储库。将 Azure DevOps Services(基于云)用于存储库和管道。
正如我上面所指出的,我正在通过运行这些脚本的过程来创建一个可以使用我们的 API 部署的单个 .js 文件(JS 应用程序由我们的各种应用程序调用和创建) API)。我的难题是如何使用 Azure 的 Build Pipe 来解决这个问题,因为我可以运行脚本,但是创建的文件然后被存储在哪里(以及在哪里引用它们),然后获取该文件并将这个创建插入到存储库中C# API 应用程序,从而启动第二次构建,然后将 C# 应用程序部署到适当的服务。
在另一个 JS 项目中,我已成功复制构建管道中的文件,然后将这些“构建”推送到适当的环境,但我无法复制特定文件,按照npm run build-prod保存然后插入文件的步骤第二个存储库的已知静态位置。注意:两个存储库位于同一个组织中。
这是我的 JS 应用程序的粗略 YAML 草案:
trigger:
- master
pool:
vmImage: 'vs2017-win2016'
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
- script: |
npm install
npm run build-prod
displayName: 'npm install and build-prod'
- task: CopyFiles@2
inputs:
SourceFolder: '$(agent.builddirectory)/dist/'
Contents: '**'
TargetFolder: '$(build.artifactstagingdirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/closet-api.js'
ArtifactName: 'closet-api.js'
publishLocation: 'Container'
感谢您的帮助!
2019 年 12 月 2 日小更新我更新了 YAML 以正确运行我的自定义构建脚本(包含在 JS 文件中)并获取所需的文件。现在的难题是更彻底地了解该文件的确切位置,因此,在单独构建管道中的另一个项目中,我可能会获取 .js 文件并在我的 C# 项目中使用它。
trigger:
- master
pool:
vmImage: 'vs2017-win2016'
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
- script: npm install
displayName: 'npm install'
- script: npm run build-prod
displayName: 'Run Build Script for Prod'
- task: CopyFiles@2
displayName: 'Copy client-api.js file to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: '**\dist\closet-api.js'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: closet-api.js
富国沪深
慕的地10843
相关分类