version: 0.2

phases:
  install:
    runtime-versions:
      python: 3.8
  pre_build:
    commands:
      - echo Logging in to Amazon ECR...
      - aws --version
      - $(aws ecr get-login --region eu-west-1 --no-include-email)
      - REPOSITORY_URI=776891437216.dkr.ecr.eu-west-1.amazonaws.com/fansifter/data_processors
      - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
      - IMAGE_TAG=build-$(echo $CODEBUILD_BUILD_ID | awk -F":" '{print $2}')
      - echo Logging to CodeArtifact..
      - aws codeartifact login --tool pip --domain fansifter --domain-owner 776891437216 --repository pypi-store --endpoint-url https://vpce-04b1e8e1ded47162d-zgtiuwso.api.codeartifact.eu-west-1.vpce.amazonaws.com
  build:
    commands:
      - echo Build started on `date`
      - echo Building the Docker image...
      - docker build -t $REPOSITORY_URI:latest .
      - docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
  post_build:
    commands:
      - echo Build completed on `date`
      - echo Pushing the Docker images...
      - docker push $REPOSITORY_URI:latest
      - docker push $REPOSITORY_URI:$IMAGE_TAG
      - printf '[{"name":"data-processor","imageUri":"776891437216.dkr.ecr.eu-west-1.amazonaws.com/fansifter/data_processors:latest"}]' > imagedefinitions.json
      - echo Running database migrations for all schemas...
      - docker run -e "DATABASE_NAME=fansifter" -e AWS_DEFAULT_REGION -e AWS_CONTAINER_CREDENTIALS_RELATIVE_URI $REPOSITORY_URI:$IMAGE_TAG dbmigrate
artifacts:
  files:
    - imagedefinitions.json
