forked from cypress-io/cypress-test-tiny
-
Notifications
You must be signed in to change notification settings - Fork 0
/
circle.yml
132 lines (112 loc) · 4.03 KB
/
circle.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
# Check https://circleci.com/docs/2.0/ for more details
# for config.yml syntax see https://circleci.com/docs/2.0/configuration-reference/
version: 2.1
executors:
mac:
macos:
xcode: "10.1.0"
commands:
early-stop:
description: |
Early halt if this commit is for testing binaries for different platform
Place this command AFTER checkout command because we need to look
at the commit subject text
parameters:
substring:
type: string
description: String to search for in the commit subject to skip build
steps:
- run:
name: Checking OS platform for "<< parameters.substring >>"
command: |
subject=$(git show -s --pretty=%s)
echo "Commit subject: $subject"
if [[ $subject == *"<< parameters.substring >>"* ]]; then
echo Skipping testing binary ⏭
echo Found string "<< parameters.substring >>"
circleci step halt
fi
jobs:
mac-test:
executor: mac
working_directory: ~/repo
steps:
- checkout
- early-stop:
substring: Testing new win32
- early-stop:
substring: Testing new linux
# Download and cache dependencies for the app and for tests
- restore_cache:
keys:
- dependencies-{{ arch }}-{{ .Branch }}-{{ checksum "package.json" }}
# fallback to using the latest cache if no exact match is found
- dependencies-{{ arch }}-{{ .Branch }}-
- run: npm install
- run: npm install @cypress/commit-message-install
- run: npx cypress cache path
- save_cache:
paths:
# local NPM modules
- node_modules
# all NPM modules
- ~/.npm
# Cypress binary (or yarn dependencies) on Linux
- ~/Library/Caches/Cypress
key: dependencies-{{ arch }}-{{ .Branch }}-{{ checksum "package.json" }}
- run: $(npm bin)/commit-message-install --else "npm install cypress"
- run: $(npm bin)/run-if npm run cypress:version
- run: $(npm bin)/run-if npm run cypress:run
- run: $(npm bin)/run-if npm run check-videos
- run:
when: on_success
name: Set status check
command: $(npm bin)/set-status --state success --description "on CircleCI"
- run:
when: on_fail
name: Set status check
command: $(npm bin)/set-status --state failure --description "on CircleCI"
linux-test:
docker:
# find Docker image at https://github.com/cypress-io/cypress-docker-images
- image: cypress/base:10
working_directory: ~/repo
steps:
- checkout
- early-stop:
substring: Testing new win32
# Download and cache dependencies for the app and for tests
- restore_cache:
keys:
- dependencies-{{ arch }}-{{ .Branch }}-{{ checksum "package.json" }}
# fallback to using the latest cache if no exact match is found
- dependencies-{{ arch }}-{{ .Branch }}-
- run: npm install
- save_cache:
paths:
# local NPM modules
- node_modules
# all NPM modules
- ~/.npm
# Cypress binary (or yarn dependencies) on Linux
- ~/.cache
key: dependencies-{{ arch }}-{{ .Branch }}-{{ checksum "package.json" }}
- run: npm install @cypress/commit-message-install
- run: $(npm bin)/commit-message-install --else "npm install cypress"
- run: $(npm bin)/run-if npm run cypress:version
- run: $(npm bin)/run-if npm run cypress:run
- run: $(npm bin)/run-if npm run check-videos
- run:
when: on_success
name: Set status check
command: $(npm bin)/set-status --state success --description "on CircleCI"
- run:
when: on_fail
name: Set status check
command: $(npm bin)/set-status --state failure --description "on CircleCI"
workflows:
version: 2
tests:
jobs:
- linux-test
- mac-test