version: 2.1

jobs:
  deploy:
    docker:
      - image: cimg/python:3.7
    working_directory: ~/offen
    steps:
      - checkout
      - setup_remote_docker
      - aws-cli/install
      - run:
          name: Set build environment depending on branch
          command: |
            if [ "${CIRCLE_BRANCH}" == "master" ]; then
              cat >> $BASH_ENV \<< EOF
            export SITEURL="https://www.offen.dev"
            export BUCKET="offen-dev-production"
            export DISTRIBUTION="E2UP8XHLFOC3QC"
            export ROBOTS_FILE="robots.txt.production"
            export OFFEN_ACCOUNT_ID="5ec8345a-2a45-4eb9-92e5-8d9e5684db58"
            EOF
            else
              cat >> $BASH_ENV \<< EOF
            export SITEURL="https://staging.offen.dev"
            export BUCKET="offen-dev-staging"
            export DISTRIBUTION="E13I20LK8ASYFH"
            export ROBOTS_FILE="robots.txt.staging"
            export OFFEN_ACCOUNT_ID="8f7ee44a-4cd8-47f2-a77e-8c7c98d46b89"
            EOF
            fi
      - run:
          name: Build
          command: make build
      - run:
          name: Deploy to S3
          command: |
            aws s3 sync --delete ./output/. s3://$BUCKET
            aws cloudfront create-invalidation --distribution-id $DISTRIBUTION --paths "/*"

workflows:
  version: 2
  build_deploy:
    jobs:
      - deploy:
          context: AWS
          filters:
            branches:
              only:
                - master
                - development

orbs:
  aws-cli: circleci/aws-cli@1.0.0
