-
Notifications
You must be signed in to change notification settings - Fork 31
145 lines (121 loc) · 3.89 KB
/
cypress.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
name: Cypress
on:
push:
branches: [main]
paths:
- 'src/**'
- 'test/**'
- 'yarn.lock'
- '.github/workflows/cypress.yml'
pull_request:
paths:
- 'src/**'
- 'test/**'
- 'yarn.lock'
- '.github/workflows/cypress.yml'
workflow_dispatch:
jobs:
internal:
if: |
github.repository_owner == 'Altinn' &&
(github.event_name != 'pull_request' && github.event.repository.fork == false) ||
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false)
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
machines: [1, 2, 3]
name: Internal
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Increase file watchers
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn config get cacheFolder)"
- uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install dependencies
run: yarn --immutable
- name: Build
run: yarn build
- name: Run tests
env:
CYPRESS_PROJECT_ID: y2jhp6
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }}
PERCY_PARALLEL_TOTAL: 3
PERCY_PARALLEL_NONCE: ${{ github.run_id }}-${{ github.run_attempt }}
run: "
npx cypress verify\n
bash -c 'yarn serve 8080 >/dev/null &'\n
bash -c 'npx percy exec --parallel -- npx cypress run
--spec test/e2e/integration
--env environment=tt02
--record
--parallel
--tag \"altinn-app-frontend\"
--group altinn-app-frontend
--browser chrome
--ci-build-id $GITHUB_RUN_ID-$GITHUB_RUN_ATTEMPT'
"
- uses: actions/upload-artifact@v4
if: failure()
with:
name: logs
path: test/logs/*
external:
if: |
github.repository_owner == 'Altinn' &&
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true)
runs-on: ubuntu-latest
name: External
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Increase file watchers
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn config get cacheFolder)"
- uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install dependencies
run: yarn --immutable
- name: Build
run: yarn build
- name: Verify cypress and run tests
run: "
npx cypress verify\n
bash -c 'yarn serve 8080 >/dev/null &'\n
bash -c 'npx cypress run
--spec test/e2e/integration
--config watchForFileChanges=false
--env environment=tt02'
"
- uses: actions/upload-artifact@v4
if: failure()
with:
name: redux-state-history
path: |
test/logs/*
test/screenshots/*
test/videos/*