Team City迈向Azure DevOps YAML

时间:2019-08-20 19:23:44

标签: azure-devops yaml

我试图将Team City中的这三个构建步骤复制到Azure DevOps。我想知道要在YAML文件中添加/更改哪些内容,以完成Team City中的构建步骤。我正在从Azure DevOps提供我的Team City步骤和YAML文件。

我尝试添加多个任务,但这似乎不起作用。

Team City建立步骤:

Step 1: Validate
Runner type: Maven (Runs Maven builds)
Execute:  If all previous steps finished successfully
POM file path: pom.xml
Goals: clean validate
Maven used: not specified
Additional Maven command line parameters: none specified
User settings provided by default
Maven metadata disabled: false
Use own local artifact repository: false
Build only modules affected by changes (incremental building): false
JDK home path: not specified
Build working directory: not specified
JVM command line parameters: not specified
Docker Settings
Docker Image: unset
Java code coverage: disabled

Step 2:
Runner type: Maven (Runs Maven builds)
Execute:  If all previous steps finished successfully
POM file path: pom.xml
Goals: package
Maven used: not specified
Additional Maven command line parameters: -Dapp.environment=test
User settings provided by default
Maven metadata disabled: false
Use own local artifact repository: false
Build only modules affected by changes (incremental building): false
JDK home path: D:\Programs\Java\jdk1.8.0_151
Build working directory: not specified
JVM command line parameters: not specified
Docker Settings
Docker Image: unset
Java code coverage: disabled

Step 3: SSH Upload to TEST 1
Runner type: SSH Upload (Deploys files/directories via SSH)
Execute:  If all previous steps finished successfully
Target host: "host IP":/opt/apache/tomcat/webapps/
Target port: default
Username: *****
Transport: SFTP
Source: target/*.war

YAML文件:

# Maven
# Build your Java project and run tests with Apache Maven.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/java

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: Maven@3
  inputs:
    mavenPomFile: 'pom.xml'
    mavenOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.8'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: true
    testResultsFiles: '**/surefire-reports/TEST-*.xml'
    goals: 'clean validate'

1 个答案:

答案 0 :(得分:0)

  

Team City迈向Azure DevOps YAML

AFAIK,Maven task使用默认生命周期,该生命周期包括以下阶段:

  
      
  • 验证-验证项目正确并且所有必要的信息均可用
  •   
  • 编译-编译项目的源代码
  •   
  • 测试-使用合适的单元测试框架测试已编译的源代码。这些测试不要求打包代码或
      部署
  •   
  • 程序包-获取编译后的代码,并将其打包为可分发格式(例如JAR)。
  •   
  • 验证-对集成测试的结果进行任何检查,以确保符合质量标准
  •   
  • 安装-将软件包安装到本地存储库中,以作为本地其他项目中的依赖项
  •   
  • 部署-在构建环境中完成,将最终程序包复制到远程存储库,以便与其他开发人员和项目共享。
  •   

这些生命周期阶段按顺序执行,以完成默认生命周期。给定上面的生命周期阶段,这意味着当使用默认生命周期时,Maven将首先验证项目,然后尝试编译源代码,针对测试运行源代码,打包二进制文件(例如jar),针对该源运行集成测试软件包,验证集成测试,将经过验证的软件包安装到本地存储库,然后将已安装的软件包部署到远程存储库。

因此,在使用任务Maven任务时,我们不需要一个个地指定每个阶段。

对于您而言,我们只需要在Goal(s)选项中指定包,而无需指定clean validate。 Maven任务将执行生命周期validate-> compile-> test-> package:

结果:

enter image description here

您还可以在“测试”标签下查看测试结果:

enter image description here

如果我们在clean validate选项中仅指定Goal(s),则该任务仅执行此干净验证,而我们在“测试”标签中看不到测试结果:

enter image description here

enter image description here

此外,如果要部署程序包,可以在Goal(s)选项中指定部署,也可以使用Copy Files Over SSH任务/ FTP Upload任务来部署此任务。 / p>

如果该任务不适合您,请查看文档Get started with Maven packages in Azure DevOps Services and TFS以获得一些详细信息。

希望这会有所帮助。