version: 0.2

phases:
  install:
    runtime-versions:
      docker: 19
      java: corretto8
      nodejs: 12
  pre_build:
    commands:

      - echo Logging in to Amazon ECR...
      - aws --version
      - $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email)
      - REPOSITORY_URI=679918342773.dkr.ecr.us-east-1.amazonaws.com/integreat-cloud
      - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
      - IMAGE_TAG=${COMMIT_HASH:=latest}
      - wget https://raw.github.com/technomancy/leiningen/stable/bin/lein
      - chmod +x lein
  build:
    commands:
      - npm install
      - ./lein build
      - echo Build started on `date`
      - echo Building the Docker image...
      - docker build -t $REPOSITORY_URI:$TAG_NAME .
      - docker tag $REPOSITORY_URI:$TAG_NAME $REPOSITORY_URI:$IMAGE_TAG
  post_build:
    commands:
      - echo Build completed on `date`
      - echo Pushing the Docker images...
      - docker push $REPOSITORY_URI:$TAG_NAME
      - docker push $REPOSITORY_URI:$IMAGE_TAG
      - echo Writing image definitions file...
      - printf '[{"name":"integreat-app","imageUri":"%s"}]' $REPOSITORY_URI:$IMAGE_TAG > target/imagedefinitions.json
artifacts:
  files:
    - auto-ap.jar
    - imagedefinitions.json
  base-directory: target
  secondary-artifacts:
    jar:
      files:
        - auto-ap.jar
        - imagedefinitions.json
      base-directory: target
    web:
     files:
        - "**/*"
     base-directory: resources/public

