version: 2.1

executors:
  node:
    docker:
      - image: cimg/node:lts

jobs:
  make:
    resource_class: large
    executor: node
    parameters:
      env:
        description: stage or prod
        type: string
    steps:
      - checkout
      - setup_remote_docker:
          docker_layer_caching: true
      - run:
          command: "make"
  push:
    executor: node
    parameters:
      env:
        description: stage or prod
        type: string
    steps:
      - checkout
      - setup_remote_docker:
          docker_layer_caching: true
      - run:
          command: "curl -sL https://github.com/digitalocean/doctl/releases/download/v1.56.0/doctl-1.56.0-linux-amd64.tar.gz | tar -xzv"
      - run:
          command: "sudo mv doctl /usr/local/bin"
      - run:
          command: "doctl auth init -t $DIGITALOCEAN_TOKEN && doctl registry login"
      - run:
          command: "npm run docker:push:all"
  update:
    executor: node
    parameters:
      env:
        description: stage or prod
        type: string
    steps:
      - checkout
      - setup_remote_docker:
          docker_layer_caching: true
      - run:
          command: "make up"

workflows:
  version: 2
  build-master:
    jobs:
      - push:
          name: push image
          env: prod
#      - update:
#          name: deploy
#          env: prod
#          requires:
#            - make
#            - push image

