shared_configs:
  simple_job_steps: &simple_job_steps
    - checkout
    - run:
        name: Run tests
        command: |
          make deps test


# Use the latest 2.1 version of CircleCI pipeline process engine. See: https://circleci.com/docs/2.0/configuration-reference
version: 2.1
jobs:
  build-1-13:
    working_directory: ~/repo
    docker:
      - image: circleci/golang:1.13
    steps: *simple_job_steps

  build-1-14:
    working_directory: ~/repo
    docker:
      - image: circleci/golang:1.14
    steps: *simple_job_steps

  build-1-15:
    working_directory: ~/repo
    docker:
      - image: circleci/golang:1.15
    steps: *simple_job_steps

  build-1-16:
    working_directory: ~/repo
    docker:
      - image: circleci/golang:1.16
    steps:
      - checkout
      - restore_cache:
          keys:
            - go-mod-v4-{{ checksum "go.sum" }}
      - run:
          name: Install Dependencies
          command: go mod download
      - save_cache:
          key: go-mod-v4-{{ checksum "go.sum" }}
          paths:
            - "/go/pkg/mod"
      - run:
          name: Run tests
          command: |
            #mkdir -p /tmp/test-reports
            #gotestsum --junitfile /tmp/test-reports/unit-tests.xml
            make ci
    #- store_test_results:
    #    path: /tmp/test-reports

  build-1-17:
    working_directory: ~/repo
    docker:
      - image: circleci/golang:1.17
    steps: *simple_job_steps

  build-1-17-u:
    working_directory: ~/repo
    docker:
      - image: circleci/golang:1.17
    steps:
      - checkout
      - run:
          name: Update depdendencies
          command: |
            go get -u ./...
      - run:
          name: Run tests
          command: |
            make deps test

workflows:
  pr-build-test:
    jobs:
      - build-1-13
      - build-1-14
      - build-1-15
      - build-1-16
      - build-1-17
      - build-1-17-u
