-
Notifications
You must be signed in to change notification settings - Fork 30
150 lines (131 loc) · 4.13 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
146
147
148
149
150
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'
types:
- opened
- reopened
- synchronize
- ready_for_review
workflow_dispatch:
jobs:
install:
name: Install
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: yarn --immutable
- name: Cypress install
uses: cypress-io/github-action@v6
with:
# Disable running of tests within install job
runTests: false
build: yarn run build
- name: Save build folder
uses: actions/upload-artifact@v4
with:
name: dist
if-no-files-found: error
path: dist
cypress-run-internal:
name: Cypress Run 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
timeout-minutes: 60
needs: install
strategy:
fail-fast: false
matrix:
containers: [1, 2, 3, 4, 5, 6]
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
- name: Download the build folder
uses: actions/download-artifact@v4
with:
name: dist
path: dist
- name: Set Percy command based on PR draft status or main branch
shell: bash
run: |
if [ "${{ github.ref }}" == "refs/heads/main" ] || [ "${{ github.event.pull_request.draft }}" == "false" ]; then
echo "PERCY_COMMAND=percy exec --parallel -- npx" >> $GITHUB_ENV
fi
- name: Cypress run
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: 6
PERCY_PARALLEL_NONCE: ${{ github.run_id }}-${{ github.run_attempt }}
IS_PR_DRAFT: ${{ github.event.pull_request.draft }}
uses: cypress-io/github-action@v6
with:
# quote the url to be safe against YML parsing surprises
start: 'npx http-server dist --cors="*" -p 8080'
wait-on: 'http://localhost:8080'
command-prefix: ${{ env.PERCY_COMMAND }}
record: true
parallel: true
group: altinn-app-frontend
tag: altinn-app-frontend
browser: chrome
ci-build-id: ${{ github.run_id }}-${{ github.run_attempt }}
spec: test/e2e/integration
env: environment=tt02
- uses: actions/upload-artifact@v4
if: failure()
with:
name: logs
path: test/logs/*
cypress-run-external:
name: Cypress Run External
if: |
github.repository_owner == 'Altinn' &&
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true)
runs-on: ubuntu-latest
needs: install
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
- name: Download the build folder
uses: actions/download-artifact@v4
with:
name: dist
path: dist
- name: Cypress run
uses: cypress-io/github-action@v6
with:
start: 'npx http-server dist --cors="*" -p 8080'
browser: chrome
spec: test/e2e/integration
env: environment=tt02
- uses: actions/upload-artifact@v4
if: failure()
with:
name: external-logs
path: |
test/logs/*
test/screenshots/*
test/videos/*