Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
gke-indexer-cicd.yml 3.90 KiB
# 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:
  branches:
    include:
    - kuber-migration
  paths:
    exclude:
      - README.md
      - .gitignore

pool:
  name: Hosted Ubuntu 1604
  demands: maven

variables:
  dockerDir: provider/indexer-gcp/docker
  imageName: os-indexer-app
  deploymentDir: provider/indexer-gcp/kubernetes/deployments
  deploymentFile: deployment-os-indexer-service.yml
  mavenSettings: ./indexer-core/maven/settings.xml
  coreModule: indexer-core
  gcpModule: indexer-gcp

  integrationTestCorePom: testing/indexer-test-core/pom.xml
  integrationTestGcpPom: testing/indexer-test-gcp/pom.xml
steps:

  - task: DownloadSecureFile@1
    name: gcrKey
    inputs:
      secureFile: cicd-push-image-to-cr-keyfile.json

  - task: DownloadSecureFile@1
    name: kuberConfig
    inputs:
      secureFile: kubeconfig

  - task: Maven@3
    inputs:
      mavenPomFile: 'pom.xml'
      options: '--settings $(mavenSettings) -DVSTS_FEED_TOKEN=$(VSTS_FEED_TOKEN) -P $(coreModule) install'
      publishJUnitResults: false
      javaHomeOption: 'JDKVersion'
      mavenVersionOption: 'Default'
      mavenAuthenticateFeed: false
      effectivePomSkip: false
      sonarQubeRunAnalysis: false

  - task: Maven@3
    inputs:
      mavenPomFile: 'pom.xml'
      options: '--settings $(mavenSettings) -DVSTS_FEED_TOKEN=$(VSTS_FEED_TOKEN) -P $(gcpModule) -DskipTests package'
      publishJUnitResults: false
      javaHomeOption: 'JDKVersion'
      mavenVersionOption: 'Default'
      mavenAuthenticateFeed: false
      effectivePomSkip: false

  - bash: |
      #!/bin/bash
      set -e
      pushd $(dockerDir)
      docker-compose build $(imageName)
      echo 'Image done.'
      cat $(gcrKey.secureFilePath) | docker login -u _json_key --password-stdin https://gcr.io
      echo 'Login done.'