version: 2

environment: &environment
  environment:
    PROJECT_NAME: dockerfilelint
    PROJECT_ORG: replicatedhq
  working_directory: /tmp/dockerfilelint

defaults: &defaults
  <<: *environment
  docker:
    - image: circleci/node:10.3.0

jobs:
  build:
    <<: *defaults
    steps:
    - checkout
    - run:
        name: test
        command: |
          yarn
          npm test
  push:
    <<: *defaults
    steps:
    - checkout
    - setup_remote_docker
    - run:
        name: build and push
        command: |
          docker build -t replicated/${PROJECT_NAME}:${CIRCLE_SHA1:0:7} .
          docker login -u="$DOCKERHUB_DOCKER_USER" -p="$DOCKERHUB_DOCKER_PASS"
          docker tag replicated/${PROJECT_NAME}:${CIRCLE_SHA1:0:7} replicated/${PROJECT_NAME}:latest;
          docker push replicated/${PROJECT_NAME}:${CIRCLE_SHA1:0:7};
          docker push replicated/${PROJECT_NAME}:latest;

workflows:
  version: 2
  test_deploy:
    jobs:
      - build
      - push:
          requires:
            - build
          filters:
            branches:
              only: master

