@@ -44,6 +44,12 @@ workflows:
44
44
- gorepo_tests :
45
45
requires :
46
46
- build
47
+ - darwin_smoke :
48
+ requires :
49
+ - build
50
+ - windows_smoke :
51
+ requires :
52
+ - build
47
53
48
54
parameters :
49
55
go_version :
@@ -56,6 +62,11 @@ parameters:
56
62
type : string
57
63
default : " 12"
58
64
65
+ orbs :
66
+ win : circleci/windows@4.0.0
67
+ go : circleci/go@1.7.1
68
+ node : circleci/node@5.0.1
69
+
59
70
jobs :
60
71
build :
61
72
executor : gopherjs
@@ -167,46 +178,98 @@ jobs:
167
178
command : |
168
179
go test -v github.com/gopherjs/gopherjs/tests/gorepo
169
180
181
+ windows_smoke :
182
+ executor :
183
+ name : win/default
184
+ shell : powershell.exe
185
+ steps :
186
+ - checkout
187
+ - run :
188
+ name : Install Go
189
+ command : |
190
+ choco install golang --version="<< pipeline.parameters.go_version >>" -my
191
+ go version
192
+ (Get-Command go).Path
193
+ - install_deps :
194
+ optional : false
195
+ - run :
196
+ name : Install GopherJS
197
+ command : go install -v .
198
+ - run :
199
+ name : Test GopherJS
200
+ command : go test -v -short ./...
201
+ - run :
202
+ name : Smoke tests
203
+ command : |
204
+ $env:NODE_PATH=$(npm root)
205
+ $env:SOURCE_MAP_SUPPORT=false
206
+ gopherjs build -v net/http
207
+ gopherjs test -v --short fmt sort ./tests
208
+
209
+ darwin_smoke :
210
+ macos :
211
+ xcode : 13.3.0 # Mac OS 12.2.1
212
+ steps :
213
+ - checkout
214
+ - setup_environment
215
+ - install_deps :
216
+ optional : false
217
+ - run :
218
+ name : Install GopherJS
219
+ command : go install -v .
220
+ - run :
221
+ name : Test GopherJS
222
+ command : go test -v -short ./...
223
+ - run :
224
+ name : Smoke tests
225
+ command : |
226
+ gopherjs build -v net/http
227
+ gopherjs test -v --short fmt log os ./tests
228
+
170
229
commands :
171
230
setup_environment :
172
231
description : Set up Go, NVM and Node.js
173
232
steps :
233
+ - go/install :
234
+ version : << pipeline.parameters.go_version >>
235
+ - node/install :
236
+ node-version : << pipeline.parameters.node_version >>
174
237
- run :
175
- name : Install Go
238
+ name : Set up environment
176
239
command : |
177
- cd /usr/local
178
- sudo rm -rf go
179
- curl "https://storage.googleapis.com/golang/go<< pipeline.parameters.go_version >>.linux-amd64.tar.gz" | sudo tar -xz
180
- echo 'export PATH="$PATH:/usr/local/go/bin:$HOME/go/bin"' >> $BASH_ENV
240
+ echo 'export PATH="$PATH:$HOME/go/bin"' >> $BASH_ENV
181
241
echo 'export GO111MODULE=on' >> $BASH_ENV
182
- . $BASH_ENV
242
+ echo 'export SOURCE_MAP_SUPPORT=true' >> $BASH_ENV
243
+ # Make nodejs able to require installed modules from any working path.
244
+ echo "export NODE_PATH=$(npm root)" >> $BASH_ENV
183
245
go version
184
- go get -v github.com/nevkontakte/go-junit-report@forked # For CircleCI test reports.
185
- - run :
186
- name : Install NVM
187
- command : |
188
- git clone https://github.com/nvm-sh/nvm $HOME/.nvm
189
- cd $HOME/.nvm && git checkout "v<< pipeline.parameters.nvm_version >>"
190
- echo 'export NVM_DIR="${HOME}/.nvm"' >> "${BASH_ENV}"
191
- echo '[ -s "${NVM_DIR}/nvm.sh" ] && \. "${NVM_DIR}/nvm.sh"' >> "${BASH_ENV}"
192
- - run :
193
- name : Install Node.js
194
- command : |
195
- nvm install "<< pipeline.parameters.node_version >>" && nvm alias default "<< pipeline.parameters.node_version >>"
196
- node --version
246
+ node -v
247
+ go install -v github.com/nevkontakte/go-junit-report@forked # For CircleCI test reports.
197
248
install_deps :
198
249
description : Install Go and Node dependency packages
250
+ parameters :
251
+ optional :
252
+ default : true
253
+ type : boolean
254
+ description : Install node-syscall module and its dependencies.
199
255
steps :
200
- - run :
201
- name : Install required Node.js packages
202
- command : |
203
- npm ci # Install our dependencies from package.json.
204
- echo 'export SOURCE_MAP_SUPPORT=true' >> $BASH_ENV
205
- # Make nodejs able to require installed modules from any working path.
206
- echo export "NODE_PATH='$(npm root)'" >> "${BASH_ENV}"
207
- - run :
208
- name : Install required Go packages
209
- command : go mod download -x
256
+ - when :
257
+ condition :
258
+ not : << parameters.optional >>
259
+ steps :
260
+ - run :
261
+ name : Install required Node.js packages
262
+ command : |
263
+ # Extra flags to avoid installing node-syscall.
264
+ npm install --no-optional --no-package-lock
265
+ - when :
266
+ condition : << parameters.optional >>
267
+ steps :
268
+ - run :
269
+ name : Install required Node.js packages (including optional)
270
+ command : |
271
+ npm ci # Install our dependencies from package.json.
272
+ - go/mod-download
210
273
install_gopherjs :
211
274
description : Install GopherJS
212
275
steps :
0 commit comments