github.com/dnephin/dobi@v0.15.0/.circleci/config.yml (about) 1 version: 2 2 3 defaults: 4 docker: &default_docker 5 - image: dnephin/circleci-alpine-step@sha256:75f925e006ea379870ea7d2ce6539072e584f62a74063d73a9b1c2fd75ec233f 6 steps: 7 - setup_remote_docker: &setup_docker 8 version: 17.07.0-ce 9 filters: &default_filters 10 branches: {ignore: [gh-pages]} 11 tags: {only: '/v[0-9]+(\.[0-9]+)*/'} 12 13 14 jobs: 15 16 build: 17 docker: [{image: 'docker:17.07-git'}] 18 steps: 19 - checkout 20 - setup_remote_docker: *setup_docker 21 - run: docker version 22 - run: 23 name: "Build dobi binary" 24 command: | 25 apk add --no-cache bash 26 bash -c 'cat dockerfiles/Dockerfile.build <(echo COPY . .) | \ 27 docker build -t dobi-dev -f - .' 28 docker run --name build dobi-dev bash -ec 'go mod vendor; go generate ./...; go install .' 29 mkdir /work 30 docker cp build:/go/bin/dobi /work/dobi 31 docker cp build:/go/src/github.com/dnephin/dobi/vendor /work/ 32 - persist_to_workspace: 33 root: /work 34 paths: [dobi, vendor] 35 36 lint: 37 docker: 38 - image: "golangci/golangci-lint:v1.24.0" 39 steps: 40 - checkout 41 - attach_workspace: {at: /work} 42 - run: 43 name: "Lint" 44 command: | 45 mv /work/vendor . 46 golangci-lint run -v ./... 47 48 cross: 49 docker: *default_docker 50 steps: 51 - checkout 52 - setup_remote_docker: *setup_docker 53 - attach_workspace: {at: /work} 54 - run: 55 name: "Build binaries" 56 command: script/ci/step dobi binary 57 - store_artifacts: 58 path: dist/bin 59 destination: bin 60 61 docs: 62 docker: *default_docker 63 steps: 64 - checkout 65 - setup_remote_docker: *setup_docker 66 - attach_workspace: {at: /work} 67 - run: 68 name: "Build documentation" 69 command: script/ci/step dobi docs-build 70 - store_artifacts: 71 path: docs/build/html.tar.gz 72 destination: docs 73 74 test-unit: 75 docker: *default_docker 76 steps: 77 - checkout 78 - setup_remote_docker: *setup_docker 79 - attach_workspace: {at: /work} 80 - run: 81 name: "Run unit tests" 82 command: script/ci/step dobi test-unit 83 84 test-examples: 85 docker: *default_docker 86 steps: 87 - checkout 88 - setup_remote_docker: *setup_docker 89 - attach_workspace: {at: /work} 90 - run: 91 name: "Run example tests" 92 command: | 93 cp -r "$DOCKER_CERT_PATH" ./circleci-certs 94 script/ci/step dobi test-examples 95 - store_artifacts: 96 path: _results 97 destination: test-examples-results 98 99 release: 100 docker: [{image: 'docker:17.07-git'}] 101 steps: 102 - checkout 103 - setup_remote_docker: *setup_docker 104 - attach_workspace: {at: /work} 105 - run: | 106 apk add --no-cache bash 107 docker login -u $DOCKER_USER -p $DOCKER_PASS 108 export DOBI_VERSION="$CIRCLE_TAG" 109 script/ci/step dobi release 110 111 workflows: 112 version: 2 113 ci: 114 jobs: 115 - build: 116 filters: *default_filters 117 - lint: 118 requires: [build] 119 filters: *default_filters 120 - cross: 121 requires: [build] 122 filters: *default_filters 123 - docs: 124 requires: [build] 125 filters: *default_filters 126 - test-unit: 127 requires: [build] 128 filters: *default_filters 129 - test-examples: 130 requires: [build] 131 filters: *default_filters 132 - release: 133 requires: [lint, cross, docs, test-unit, test-examples] 134 filters: 135 tags: {only: '/v[0-9]+(\.[0-9]+)*/'} 136 branches: {ignore: '/.*/'}