github.com/snyk/vervet/v5@v5.11.1-0.20240202085829-ad4dd7fb6101/.circleci/config.yml (about) 1 version: 2.1 2 3 orbs: 4 go: circleci/go@1.9.0 5 publish: snyk/publish@1 6 snyk: snyk/snyk@1 7 8 defaults: &defaults 9 resource_class: small 10 working_directory: ~/vervet 11 docker: 12 - image: cimg/go:1.21-node 13 14 test_vu_defaults: &test_vu_defaults 15 resource_class: medium 16 working_directory: ~/vervet/vervet-underground 17 machine: 18 image: ubuntu-2004:2023.10.1 19 20 vu_defaults: &vu_defaults 21 resource_class: small 22 working_directory: ~/vervet/vervet-underground 23 docker: 24 - image: cimg/go:1.21-node 25 environment: 26 DOCKER_BUILDKIT: 1 27 28 ignore_main_branch_filter: &ignore_main_branch_filter 29 filters: 30 branches: 31 ignore: 32 - main 33 34 only_main_branch_filter: &only_main_branch_filter 35 filters: 36 branches: 37 only: 38 - main 39 40 commands: 41 gcr_auth: 42 description: Auth GCR 43 steps: 44 - setup_remote_docker 45 - run: 46 name: GCR auth 47 command: echo $GCLOUD_GCR_BUILDER | docker login -u _json_key --password-stdin https://gcr.io/snyk-main 48 49 setup_build_remote_docker: 50 steps: 51 - setup_remote_docker: 52 docker_layer_caching: false 53 54 jobs: 55 test: 56 <<: *defaults 57 steps: 58 - run: 59 name: Install spectral 60 command: sudo npm install -g @stoplight/spectral@6.5.0 61 - checkout 62 - go/mod-download-cached 63 - run: 64 name: Verify testdata/output up to date 65 command: go generate ./testdata 66 - run: 67 name: Run tests 68 command: go test ./... -count=1 69 70 test-vu: 71 <<: *test_vu_defaults 72 steps: 73 - checkout: 74 path: ~/vervet 75 - go/install: 76 version: 1.21.3 77 - go/mod-download-cached 78 - run: 79 command: make test 80 81 lint: 82 docker: 83 - image: golangci/golangci-lint:v1.51.0 84 steps: 85 - checkout 86 - run: 87 command: golangci-lint run -v ./... 88 89 lint-vu: 90 docker: 91 - image: golangci/golangci-lint:v1.51.0 92 steps: 93 - checkout 94 - run: 95 command: cd vervet-underground && golangci-lint run -v ./... 96 97 build-vu: 98 <<: *vu_defaults 99 steps: 100 - checkout: 101 path: ~/vervet 102 - gcr_auth 103 - run: 104 name: Build Docker Image 105 command: make build-docker 106 - publish/save-image: 107 image_name: vervet-underground 108 109 scan-vu-container: 110 <<: *vu_defaults 111 steps: 112 - setup_build_remote_docker 113 - publish/load-image: 114 image_name: vervet-underground 115 - snyk/scan: 116 organization: platform-extensibility 117 command: container test 118 fail-on-issues: true 119 severity-threshold: high 120 monitor-on-build: false 121 docker-image-name: vervet-underground:${CIRCLE_WORKFLOW_ID} 122 token-variable: MONITOR_SNYK_TOKEN 123 124 release: 125 <<: *defaults 126 steps: 127 - checkout 128 - run: |- 129 go install github.com/caarlos0/svu@latest 130 export VERSION=$(svu next) 131 if [ -z $(git tag -l ${VERSION}) ]; then 132 ./scripts/dist.bash 133 ./scripts/release.bash 134 fi 135 136 workflows: 137 version: 2 138 CI: 139 jobs: 140 - test: 141 name: Test 142 <<: *ignore_main_branch_filter 143 144 - test-vu: 145 name: Test VU 146 <<: *ignore_main_branch_filter 147 148 - lint: 149 name: Lint 150 <<: *ignore_main_branch_filter 151 152 - lint-vu: 153 name: Lint VU 154 <<: *ignore_main_branch_filter 155 156 - build-vu: 157 name: Build Docker Image 158 context: snyk-docker-build 159 requires: 160 - Test VU 161 - Lint VU 162 163 - scan-vu-container: 164 name: Scan Container 165 context: 166 - team-extensibility 167 requires: 168 - Build Docker Image 169 170 CD: 171 jobs: 172 - test: 173 name: Test 174 <<: *only_main_branch_filter 175 176 - build-vu: 177 name: Build Docker Image 178 context: snyk-docker-build 179 <<: *only_main_branch_filter 180 181 - release: 182 name: Release 183 context: nodejs-app-release 184 requires: 185 - Test 186 187 - publish/publish: 188 name: Publish Docker Image 189 image_name: vervet-underground 190 fedramp: "no" 191 snyk_organization: platform-extensibility 192 snyk_token_variable: MONITOR_SNYK_TOKEN 193 snyk_project_tags: component=pkg:github/snyk/vervet-underground@main,component=pkg:github/snyk/vervet@main 194 context: 195 - snyk-docker-build 196 - infra-publish-orb 197 - team-extensibility 198 - snyk-bot-slack 199 requires: 200 - Build Docker Image