-
Notifications
You must be signed in to change notification settings - Fork 28
135 lines (111 loc) · 3.25 KB
/
tests.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
name: Tests
on:
schedule:
- cron: '0 0 * * SUN'
push:
branches: [master]
pull_request:
branches: [master]
jobs:
validations:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/cache@v3
with:
path: |
.venv
.cache
.wdm
.npm
node_modules
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json', '**/poetry.lock') }}
- uses: actions/checkout@v3
with:
fetch-depth: 0
- run: git checkout ${{ env.BRANCH }}
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- uses: abatilo/actions-poetry@v2
with:
poetry-version: latest
- uses: actions/setup-node@v3
with:
node-version: '*'
check-latest: true
- run: |
python -m pip install --upgrade pip
npm ci --cache .npm --prefer-offline
npm install --global npm
npm install
- name: prettier
run: npx prettier . --check
- name: eslint
run: npx eslint --color .
- name: Build dist/ files
run: npm run prod:build
- name: web-ext
run: npx -c "web-ext lint --ignore-files=src/js/**"
selenium:
name: Selenium Tests
needs: validations
strategy:
matrix:
# Use only lower and active versions
instance: [11.0, 14.0, 15.0, 16.0]
browser: [chrome, firefox]
fail-fast: true
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/cache@v3
with:
path: |
.venv
.cache
.wdm
.npm
node_modules
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json', '**/poetry.lock') }}
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Switch to current branch
run: git checkout ${{ env.BRANCH }}
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- uses: abatilo/actions-poetry@v2
with:
poetry-version: latest
- uses: actions/setup-node@v3
with:
node-version: '*'
check-latest: true
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
npm ci --cache .npm --prefer-offline
npm install --global npm
poetry config virtualenvs.in-project true
poetry install
npm install
- name: Install browser firefox
uses: browser-actions/setup-firefox@latest
with:
firefox-version: "latest"
if: ${{ matrix.browser == 'firefox' }}
- name: Install browser chrome
uses: browser-actions/setup-chrome@latest
with:
chrome-version: "stable"
if: ${{ matrix.browser == 'chrome' }}
- name: Install xvfb
run: sudo apt-get install -y xvfb
- name: Create .zip package
run: npm run prod:build
- name: Run test for ${{ matrix.instance }} (${{ matrix.browser }})
id: xtests
run: xvfb-run --auto-servernum npm run dev:tests -- --capture=no --browser ${{ matrix.browser }} --odoo-version ${{ matrix.instance }}