无法将扩展和阶段一起使用天蓝色管道

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

我正在尝试在azure devops中使用模板,因为它是一个使用gradle和weblogic构建项目的模板,但在此之前我需要在前面创建构建并将其移动到后面,问题是当我添加阶段时它会抛出错误 Unexpected property extends 这不是因为版本,因为没有步骤它可以正常工作

有一个正确的选项可以做到这一点,而不需要更改模板?,我已经尝试了很多东西,但不起作用,这是我的代码

trigger:
  - none

parameters:
  - name: deliveryTrain
    type: object
    default:
      continuousIntegration:
        build:
          - with: gradle
            configure:
              javaVersion: '1.8'
              gradleExtraOptionsLabo: 'clean build'
              workingDirectory: 'Gerencia_Tecnologia/salud-mensajeria_dinamica-back'
        artifact:
          with: 'artifactory'
          configure:
            artifactName: 'dinamica.md.ear'
      continuousDelivery:
        deployment:
          - environment: 'labo'
            platform:
              with: 'weblogic'
              configure:
                serviceConnection: 'lab-Salud-wl-12.2.1.4'
      continuousTesting:
        - environment: 'labo'
          cases:
            - type: performance
              with: 'jmeter'
              configure:
                repo:
                  name: 'Gerencia_Tecnologia/salud-mensajeria_dinamica-back-ml'
                  branch: 'feature/hu_comun_1707'
                performanceTestFiles: 'jmeter/test/test.jmx'
                performanceTestPercentilTest: '99'
                performanceTestResultFiles: 'jmeter/test/result.jtl'

stages:
  - stage: MensajeriaDinamica-Front-build
    displayName: 'MensajeriaDinamica-Front-build'
    jobs:
      - job: BuildFrontEnd
        displayName: 'Build and Copy Front Artifact'
        pool:
          name: 'linux-generic'
        steps:
          - checkout: 'salud-mensajeria_dinamica-fr'
          - task: UseNode@1
            inputs:
              version: '12.16.1'
          - script: |
              npm install @angular/[email protected] &&
              npm install &&
              ng build --aot --output-hashing=all --prod &&
              cp -r dist/. $(Build.ArtifactStagingDirectory)
            displayName: 'Built and Copied Front Artifact'

      - job: CopyArtifacts
        displayName: 'Move Front Artifact to Back-End Repository'
        pool:
          name: 'linux-generic'
        steps:
            - checkout: 'salud-mensajeria-dinamica-back'
            - script: |
                rm -r $(Build.SourcesDirectory)/WAR_MensajeriaDinamica/WebContent/resultadosapp/*
            - task: CopyFiles@2
              inputs:
                SourceFolder: '$(Build.ArtifactStagingDirectory)'
                Contents: '**'
                TargetFolder: '$(Build.SourcesDirectory)/WAR_MensajeriaDinamica/WebContent/resultadosapp/'
              displayName: 'Moved Front Artifact to Back-End Repository'

resources:
  repositories:
    - repository: salud-mensajeria_dinamica-back
      type: git
      name: 'Gerencia_Tecnologia/salud-mensajeria_dinamica-back-ml'
      ref: 'feature/hu_comun_1707'
    - repository: salud-mensajeria-dinamica-front
      type: git
      name: 'Gerencia_Tecnologia/salud-mensajeria_dinamica-fr'
      ref: 'feature/hu-comun-tablas'
    - repository: templates
      type: git
      name: 'Gerencia_Tecnologia/ti-templates_pipelines-conf'
      ref: 'master'

extends:
  template: 'templates/gradle-weblogic.yaml@templates'
  parameters:
    deliveryTrain: ${{ parameters.deliveryTrain }}

azure yaml azure-pipelines pipeline extends
1个回答
0
投票

根据您的 YAML 示例,我可以重现相同的问题。

恐怕在 YAML Pipeline 中无法同时定义 extends 和 stage 字段。

为了满足您的需求,您可以更改为使用 - template 字段来使用 YAML 模板并同时定义阶段。

例如:

模板文件:

parameters:
  - name: deliveryTrain
    type: object
    default:
      continuousIntegration:
        build:
          - with: gradle
            configure:
              javaVersion: '1.8'
              gradleExtraOptionsLabo: 'clean build'
              workingDirectory: 'Gerencia_Tecnologia/salud-mensajeria_dinamica-back'
        artifact:
          with: 'artifactory'
          configure:
            artifactName: 'dinamica.md.ear'
      continuousDelivery:
        deployment:
          - environment: 'labo'
            platform:
              with: 'weblogic'
              configure:
                serviceConnection: 'lab-Salud-wl-12.2.1.4'
      continuousTesting:
        - environment: 'labo'
          cases:
            - type: performance
              with: 'jmeter'
              configure:
                repo:
                  name: 'Gerencia_Tecnologia/salud-mensajeria_dinamica-back-ml'
                  branch: 'feature/hu_comun_1707'
                performanceTestFiles: 'jmeter/test/test.jmx'
                performanceTestPercentilTest: '99'
                performanceTestResultFiles: 'jmeter/test/result.jtl'

stages:
  - stage: MensajeriaDinamica-Front-build
    displayName: 'MensajeriaDinamica-Front-build'
    jobs:
      - job: BuildFrontEnd
        displayName: 'Build and Copy Front Artifact'
        pool:
          name: 'linux-generic'
        steps:
          - checkout: 'salud-mensajeria_dinamica-fr'
          - task: UseNode@1
            inputs:
              version: '12.16.1'
          - script: |
              npm install @angular/[email protected] &&
              npm install &&
              ng build --aot --output-hashing=all --prod &&
              cp -r dist/. $(Build.ArtifactStagingDirectory)
            displayName: 'Built and Copied Front Artifact'

      - job: CopyArtifacts
        displayName: 'Move Front Artifact to Back-End Repository'
        pool:
          name: 'linux-generic'
        steps:
            - checkout: 'salud-mensajeria-dinamica-back'
            - script: |
                rm -r $(Build.SourcesDirectory)/WAR_MensajeriaDinamica/WebContent/resultadosapp/*
            - task: CopyFiles@2
              inputs:
                SourceFolder: '$(Build.ArtifactStagingDirectory)'
                Contents: '**'
                TargetFolder: '$(Build.SourcesDirectory)/WAR_MensajeriaDinamica/WebContent/resultadosapp/'
              displayName: 'Moved Front Artifact to Back-End Repository'

主要 YAML:

resources:
  repositories:
    - repository: salud-mensajeria_dinamica-back
      type: git
      name: 'Gerencia_Tecnologia/salud-mensajeria_dinamica-back-ml'
      ref: 'feature/hu_comun_1707'
    - repository: salud-mensajeria-dinamica-front
      type: git
      name: 'Gerencia_Tecnologia/salud-mensajeria_dinamica-fr'
      ref: 'feature/hu-comun-tablas'
    - repository: templates
      type: git
      name: 'Gerencia_Tecnologia/ti-templates_pipelines-conf'
      ref: 'master'

stages:
- stage: test
  jobs:
    - job:
      steps:
       - xxx


- template: 'templates/gradle-weblogic.yaml@templates'
  parameters:
    deliveryTrain: ${{ parameters.deliveryTrain }}

注意: 在这种情况下,您需要删除模板字段中的 trigger:none 并将其添加到主 YAML。

更详细的信息可以参考文档:模板使用参考

© www.soinside.com 2019 - 2024. All rights reserved.