-# 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:
- working_directory: ~/repo
- docker:
- - image: cimg/go:1.22.1
- 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
- - store_test_results:
- path: /tmp/test-reports
-
- deploy:
- docker:
- - image: cimg/go:1.22.1
-# working_directory: /go/src/github.com/jhalter/mobius
- steps:
- - checkout
- - run: go get -u github.com/mitchellh/gox
- - run: go install github.com/tcnksm/ghr@latest
- - run: go install github.com/stevenmatthewt/semantics@latest
- - run:
- name: cross compile
- command: |
- make all
- - add_ssh_keys
- - run:
- name: create release
- command: |
- tag=$(/home/circleci/go/bin/semantics --output-tag)
- if [ "$tag" ]; then
- /home/circleci/go/bin/ghr -t $GITHUB_TOKEN -u $CIRCLE_PROJECT_USERNAME -r $CIRCLE_PROJECT_REPONAME --replace $tag dist/
- else
- echo "The commit message(s) did not indicate a major/minor/patch version."
- fi
-
-workflows:
- version: 2
- build-deploy:
- jobs:
- - build
- - deploy:
- requires:
- - build
- filters:
- branches:
- only: master