【问题标题】:On-premises deployment of java code using azure ci cd使用 azure ci cd 本地部署 java 代码
【发布时间】:2021-07-21 15:39:15
【问题描述】:

我想将我的应用程序的 war 文件部署到本地 Linux 机器上。我正在使用 Azure CI/CD yaml 管道进行构建和发布。

作为 CI 的一部分,我正在生成工件并将其放置在放置位置。

请参阅下面的 azure-pipeline.yml 代码:

trigger:
- main

stages: 
  - stage: Build
    jobs:
      - job: BuildWebApp
        pool:
          name: LinuxAgent
          demands: maven

        steps:
        - task: Maven@3
          displayName: 'Maven pom.xml'
          inputs:
            mavenPomFile: 'pom.xml'

        - task: CopyFiles@2
          displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
          inputs:
            SourceFolder: '$(system.defaultworkingdirectory)'
            Contents: '**/*.jar'
            TargetFolder: '$(build.artifactstagingdirectory)'
          condition: succeededOrFailed()

        - task: PublishBuildArtifacts@1
          displayName: 'Publish Artifact: Artfifact'
          inputs:
            PathtoPublish: '$(build.artifactstagingdirectory)'
          condition: succeededOrFailed()
          
  - stage: DeployDev
    displayName: 'Deploy to Dev'
    jobs:
      - deployment:
        pool:          
          name: LinuxAgent
        environment: 'Dev'
        strategy:
         runOnce:
           deploy:
             steps:
             - task: CopyFiles@2
               inputs:
                 SourceFolder: '$(System.DefaultWorkingDirectory)/_maven-modular.git/drop/module1/'
                 Contents: '**'
                 TargetFolder: '/home/test-user/azure-agents/test'
             

           

如果这是正确的方法,谁能指导我?

错误:##[错误]未处理:未找到源文件夹:/home/test-user/azure-agents/_work/19/s/_maven-modular.git/drop/module1/target

【问题讨论】:

    标签: azure azure-devops continuous-integration continuous-deployment


    【解决方案1】:

    在部署作业中,您应该使用Download Build Artifacts task 将您在构建作业中发布的工件下载到部署作业的工作目录。

    即使部署作业和构建作业在同一管道中,发布的工件也不会自动下载或复制到部署作业中。

    【讨论】:

      【解决方案2】:

      您尝试复制 jar 文件,但您想复制 war 文件。也许可以。

      - task: CopyFiles@2
                displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
                inputs:
                  SourceFolder: '$(system.defaultworkingdirectory)'
                  **Contents: '**/*.jar'**
                  TargetFolder: '$(build.artifactstagingdirectory)'
                condition: succeededOrFailed()
      

      【讨论】:

        【解决方案3】:

        正如您所询问的正确方法 - 您应该使用发布管道而不是构建管道进行部署。由于您已经在 CI 管道中发布了工件,因此您可以轻松地在发布管道中使用已发布的工件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-15
          • 2019-11-25
          • 1970-01-01
          相关资源
          最近更新 更多