When we deployed this app quickly, we did a build spec inline in a CodeBuild job.


I think this is the CodeDeploy one...

version: 0.2
phases:
  install:
    commands:
      - pip install -r requirements.txt #install code dependencies
  build:
    commands:
      - python tests_app.py -v #this will test the app works
artifacts:
  files:
    - '**/*'
    

And this could be an ECS / ECS Fargate one

version: 0.2
phases:
  pre_build:
    commands:
      - echo UnitTest the code
      - pip install -r requirements.txt #install code dependencies
      - python tests_app.py -v
      - echo Logging in to Amazon ECR...
      - aws --version
      - $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email)
      - REPOSITORY_URI=$ECR_REPO
      - IMAGE_TAG=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
  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
      - echo Writing image definitions file...
      - printf '[{"name":"ApiTask","imageUri":"%s"}]' $REPOSITORY_URI:$IMAGE_TAG > imagedefinitions.json
artifacts:
  files: imagedefinitions.json