-
Notifications
You must be signed in to change notification settings - Fork 289
/
config.yml
162 lines (154 loc) · 5.28 KB
/
config.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
version: 2.1
orbs:
slack: circleci/slack@3.4.0
shellcheck: circleci/shellcheck@1.3.15
win: circleci/windows@2.2.0
jobs:
build-linux:
docker:
- image: gcr.io/windmill-public-containers/tilt-ci@sha256:4463a50592482e4bf1c5269f0230f3eac5b0211fe86afae25270e9cc79d1305f
steps:
- checkout
- run: echo 'export PATH=~/go/bin:$PATH' >> $BASH_ENV
- setup_remote_docker:
version: 19.03.12
- run: docker pull registry:2
- run: sudo mv /usr/bin/helm3 /usr/bin/helm
- restore_cache:
keys:
- golangci_lint_v3_{{ .Revision }}
- golangci_lint_v3_ # Else find the most recently generated cache
- run: make lint
- run: make test_install_version_check
- save_cache:
paths:
- /home/circleci/.cache/golangci-lint
key: golangci_lint_v3_{{ .Revision }}
- run: make wire-check
- run: make test-go
- store_test_results:
path: test-results
- slack/notify-on-failure:
only_for_branches: master
helm2:
docker:
- image: gcr.io/windmill-public-containers/tilt-ci@sha256:4463a50592482e4bf1c5269f0230f3eac5b0211fe86afae25270e9cc79d1305f
steps:
- checkout
- run: sudo mv /usr/bin/helm2 /usr/bin/helm
- run: make test-go-helm-only
- store_test_results:
path: test-results
- slack/notify-on-failure:
only_for_branches: master
build-js:
docker:
- image: circleci/node:12
steps:
- checkout
- run: make check-js
- run:
name: Run jest with JUnit Reporter
command: make test-js
environment:
JEST_JUNIT_OUTPUT_DIR: "reports/junit/js-test-results.xml"
- store_test_results:
path: web/reports/junit
- slack/notify-on-failure:
only_for_branches: master
publish-assets:
docker:
- image: gcr.io/windmill-public-containers/tilt-ci@sha256:62d0b5b9668e41165b132a86a599b34331f199c95a4e4d8ba82d64a97f654c7c
steps:
- checkout
- run: echo $GCLOUD_SERVICE_KEY > /tmp/gcloud-service-key.json
- run: gcloud auth activate-service-account --key-file=/tmp/gcloud-service-key.json
- run: ./scripts/upload-assets.py $CIRCLE_SHA1
- slack/notify-on-failure:
only_for_branches: master
build-windows:
executor:
name: win/default
size: "medium"
steps:
- run: choco install make kustomize kubernetes-helm docker-compose
- run: choco update golang --version=1.14.7
- run: go get -u gotest.tools/gotestsum
- checkout
# Check to make sure Windows binaries compile
- run: go install -mod vendor ./cmd/tilt
- run: make shorttestsum
- run: iex ./scripts/install.ps1
- store_test_results:
path: test-results
build-integration:
docker:
- image: gcr.io/windmill-public-containers/tilt-integration-ci@sha256:7d543d9437d494c2b5e44a3cead55e9850f2a31fd600f6cdad6193d3547f7bc1
steps:
- checkout
- run: echo 'export PATH=/go/bin:$PATH' >> $BASH_ENV
- setup_remote_docker:
version: 19.03.12
- run: with-kind-cluster.sh make integration
- store_test_results:
path: test-results
- slack/notify-on-failure:
only_for_branches: master
build-macos:
macos:
xcode: "10.0.0"
steps:
- checkout
- restore_cache:
keys:
- homebrew_cache_v11
# Bump cache version when changing this.
- run: echo 'export HOMEBREW_PACKAGES="go@1.12"' >> $BASH_ENV
# Only update when brew doesn't know about some of the packages because:
# 1) not worth the cost, and
# 2) hits github in a way that leads to flakyness
- run: brew info ${HOMEBREW_PACKAGES} || brew update || true
- run: HOMEBREW_NO_AUTO_UPDATE=true brew install ${HOMEBREW_PACKAGES}
- save_cache:
paths:
- /usr/local/Homebrew
key: homebrew_cache_v11
- run: echo 'export PATH="/usr/local/opt/go@1.12/bin:$PATH"' >> $BASH_ENV
- run: curl -fsSL "https://github.com/gotestyourself/gotestsum/releases/download/v0.3.3/gotestsum_0.3.3_darwin_amd64.tar.gz" | sudo tar -xz -C /usr/local/bin gotestsum
# We can't run the container tests on macos because nested
# VMs don't work on circleci.
- run: mkdir -p test-results
# Only run watch tests, because these are currently the only tests that are OS-specific.
# In other Tilt tests, we mock out OS-specific components.
- run: gotestsum --format standard-quiet --junitfile test-results/unit-tests.xml -- -mod vendor ./internal/watch/...
- store_test_results:
path: test-results
- slack/notify-on-failure:
only_for_branches: master
workflows:
version: 2
shellcheck:
jobs:
- shellcheck/check:
path: scripts
build:
# The linux job is cheaper than the others, so run that first.
jobs:
- build-linux
- helm2
- build-js:
requires:
- build-linux
- build-macos:
requires:
- build-linux
- build-integration:
requires:
- build-linux
- build-windows:
requires:
- build-linux
- publish-assets:
filters:
branches:
only: master