#####################
# README: Defines a template to be used as a starting point for defining a service pipeline
#####################

trigger:
  batch: true
  branches:
    include:
      - master
  paths:
    exclude:
      - /**/*.md
      - .gitignore
      - images/

pr:
  autoCancel: true
  branches:
    include:
      - '*'
  paths:
    exclude:
      - /**/*.md
      - .gitignore
      - images/

variables:
  - group: 'Azure Common Secrets'
  - group: 'Azure - Common'

  - name: serviceName
    value: 'indexer'

resources:
  repositories:
    - repository: infrastructure-templates
      type: git
      name: open-data-ecosystem/infrastructure-templates

stages:
  - template: devops/service-pipelines/build-stage.yml@infrastructure-templates
    parameters:
      mavenGoal: 'package'
      mavenPublishJUnitResults: true
      serviceCoreMavenOptions: '--settings ./indexer-core/maven/settings.xml -DVSTS_FEED_TOKEN=$(VSTS_FEED_TOKEN) -U'
      mavenOptions: '--settings ./provider/${{ variables.serviceName }}-azure/maven/settings.xml -DVSTS_FEED_TOKEN=$(VSTS_FEED_TOKEN) -U -P indexer-azure'
      copyFileContents: |
          pom.xml
          provider/${{ variables.serviceName }}-azure/maven/settings.xml
          provider/${{ variables.serviceName }}-azure/pom.xml
          provider/${{ variables.serviceName }}-azure/target/*-spring-boot.jar
      copyFileContentsToFlatten: ''
      serviceBase: ${{ variables.serviceName }}
      testingRootFolder: 'testing'
  - template: devops/service-pipelines/deploy-stages.yml@infrastructure-templates
    parameters:
      serviceName: ${{ variables.serviceName }}
      testCoreMavenPomFile: 'testing/indexer-test-core/pom.xml'
      testCoreMavenOptions: '--settings $(System.DefaultWorkingDirectory)/drop/deploy/testing/maven/settings.xml -DVSTS_FEED_TOKEN=$(VSTS_FEED_TOKEN) -U'
      providers:
        -  name: Azure
           # Merges into Master
           ${{ if eq(variables['Build.SourceBranchName'], 'master') }}:
            environments: ['devint', 'qa', 'prod']
           # PR updates / creations
           ${{ if ne(variables['Build.SourceBranchName'], 'master') }}:
            environments: ['devint']
