# This is a sample build configuration for Java (Maven).
# Check our guides at https://confluence.atlassian.com/x/zd-5Mw for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: maven:3.6.3-openjdk-17

pipelines:

  pull-requests:
    feature/*:
      - step:
          name: Test Feature
          size: 2x
          caches:
            - maven
          script:
            - mvn -B -X clean test # -B batch mode makes Maven less verbose
    bugfix/*:
      - step:
          name: Test BugFix
          size: 2x
          caches:
            - maven
          script:
            - mvn -B -X clean test # -B batch mode makes Maven less verbose

  branches:
    master:
      - step:
          name: 'Build and test'
          caches:
            - maven
          script: # Modify the commands below to build your repository.
            - mvn -s settings.xml -B clean test # -B batch mode makes Maven less verbose
      - step:
          name: 'Gerar imagem produção'
          caches:
            - maven
          script:
            - mvn -s settings.xml clean install -DskipTests jib:dockerBuild
            - MVN_VERSION=$(mvn -q  -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)
            - pipe: atlassian/aws-ecr-push-image:1.2.2
              variables:
                AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
                AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
                AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
                IMAGE_NAME: <%= appName %>/<%= appName %>
                TAGS: '${MVN_VERSION} latest'
          services:
            - docker
      - step:
          name: 'Deploy Produção'
          deployment: production
          trigger: manual
          script:
            - pipe: atlassian/aws-eks-kubectl-run:1.4.1
              variables:
                AWS_ACCESS_KEY_ID: $AWS_EKS_ID
                AWS_SECRET_ACCESS_KEY: $AWS_EKS_SECRET
                AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
                CLUSTER_NAME: 'esteira'
                KUBECTL_COMMAND: 'rollout restart deployment microservice-Fluxos'

    dev:
      - step:
          name: 'Build and test'
          caches:
            - maven
          script: # Modify the commands below to build your repository.
            - mvn -s settings.xml -B clean test # -B batch mode makes Maven less verbose
      - step:
          name: 'Gerar imagem'
          caches:
            - maven
          script:
            - mvn -s settings.xml clean install -DskipTests jib:dockerBuild
            - pipe: atlassian/aws-ecr-push-image:1.2.2
              variables:
                AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
                AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
                AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
                IMAGE_NAME: <%= appName %>/<%= appName %>
                TAGS: 'dev'
          services:
            - docker
      - step:
          name: 'Deploy homologação'
          deployment: staging
          trigger: automatic
          script:
            - pipe: atlassian/kubectl-run:1.3.3
              variables:
                KUBE_CONFIG: $KUBE_CONFIG_HML
                KUBECTL_COMMAND: '--insecure-skip-tls-verify rollout restart deployment microservice-Fluxos'