# Golang CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-go/ for more details
version: 2
jobs:
  build:
    docker:
      # specify the version
      - image: circleci/golang:1.8

      # Specify service dependencies here if necessary
      # CircleCI maintains a library of pre-built images
      # documented at https://circleci.com/docs/2.0/circleci-images/
      # - image: circleci/postgres:9.4

    #### TEMPLATE_NOTE: go expects specific checkout path representing url
    #### expecting it in the form of
    ####   /go/src/github.com/circleci/go-tool
    ####   /go/src/bitbucket.org/circleci/go-tool
    working_directory: /go/src/github.com/Golang-Coach/server
    steps:
      - checkout

      - run: go get github.com/kardianos/govendor

      - run: go get github.com/mitchellh/gox

      - run: go get -u github.com/swaggo/swag/cmd/swag

      - run: govendor sync

      - run: swag init

      - run: gox -os="linux"

      - setup_remote_docker

      - run: |
                TAG=0.1.$CIRCLE_BUILD_NUM
                docker login -u $DOCKER_USER -p $DOCKER_PASS         # (5)
                docker build -t   golangcoach/server:$TAG .      # (4)
                docker push golangcoach/server:$TAG
                docker build -t   golangcoach/server .      # (4)
                docker push golangcoach/server
