-
Notifications
You must be signed in to change notification settings - Fork 1
132 lines (125 loc) · 3.66 KB
/
ci-frontend.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
# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: frontend CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: etp-front
strategy:
matrix:
node-version: [ 20.x ]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: etp-front/package-lock.json
- run: npm ci
- run: npm run build --if-present
test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: etp-front
strategy:
matrix:
node-version: [ 20.x ]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: etp-front/package-lock.json
- run: npm ci
- run: npm test
- name: Publish Test Report
uses: mikepenz/action-junit-report@v4
if: success() || failure()
with:
report_paths: '**/etp-front/test_report.xml'
check_name: 'etp-front test report'
format:
runs-on: ubuntu-latest
defaults:
run:
working-directory: etp-front
strategy:
matrix:
node-version: [ 20.x ]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: etp-front/package-lock.json
- run: npm ci
- run: npm run check-format
storybook:
runs-on: ubuntu-latest
defaults:
run:
working-directory: etp-front
strategy:
matrix:
node-version: [ 20.x ]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: etp-front/package-lock.json
- run: npm ci
- run: npm run storybook:build
storybook-visual-tests:
runs-on: ubuntu-latest
defaults:
run:
working-directory: etp-front
strategy:
matrix:
node-version: [ 20.x ]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Docker Buildx
uses: docker/[email protected]
- name: Build storybook-test-image
uses: docker/[email protected]
with:
context: etp-front
file: etp-front/visual-tests.Dockerfile
cache-from: type=gha,scope=visual-tests
cache-to: type=gha,mode=max,scope=visual-tests
load: true
- name: Serve Storybook and run tests in Docker
run: ./run-visual-tests-in-docker.sh
- uses: actions/upload-artifact@v4
if: failure()
with:
name: snapshots-diff
path: etp-front/__snapshots__/__diff_output__