-
Notifications
You must be signed in to change notification settings - Fork 0
140 lines (112 loc) · 3.26 KB
/
ci.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
name: CI
on:
pull_request:
branches: ["develop"]
workflow_dispatch:
env:
WORKDIR: ~/get-p-frontend
NODE_VERSION: 20
STORYBOOK_TOKEN: ${{ secrets.STORYBOOK_TOKEN }}
jobs:
health-check:
runs-on: self-hosted
steps:
- name: Check Node Version
run: |
cd ~/get-p-frontend
if [[ "$(node --version)" != v${{env.NODE_VERSION}}* ]]; then
echo "Node.js major version should be ${{env.NODE_VERSION}}"
exit 1
fi
checkout:
runs-on: self-hosted
needs: health-check
steps:
- name: Checkout Source Code
run: |
cd ${{env.WORKDIR}}
git reset --hard
git clean -fd
git checkout ${{ github.ref_name }}
git pull origin ${{ github.ref_name }}
- name: Install Dependencies
run: |
cd ${{env.WORKDIR}}
yarn install --frozen-lockfile
# design system
test-design-system:
runs-on: self-hosted
needs: checkout
steps:
- name: Run Test Design System
run: |
cd ${{env.WORKDIR}}
echo run tests
build-design-system:
runs-on: self-hosted
needs: checkout
steps:
- name: Build Design System
run: |
cd ${{env.WORKDIR}}
yarn design build
# client
compile-and-lint:
runs-on: self-hosted
needs: build-design-system
steps:
- name: Run Compile and Lint
run: |
cd ${{env.WORKDIR}}
yarn client compile
yarn client lint
# unit-test
unit-test:
runs-on: self-hosted
needs: build-design-system
steps:
- name: Run Unit Test
run: |
cd ${{env.WORKDIR}}
yarn client test
# e2e-test (TODO)
setup-e2e:
runs-on: self-hosted
needs: health-check
steps:
- name: Checkout Backend Code
run: echo checkout server code, run dockerfile
e2e-test:
runs-on: self-hosted
needs: setup-e2e
steps:
- name: Run e2e Test
run: |
cd ${{env.WORKDIR}}
yarn client test:e2e:ci
cleanup-e2e:
runs-on: self-hosted
needs: setup-e2e
steps:
- name: Cleanup
run: echo cleanup
# storybook
ui-test:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install Dependencies
run: yarn install --frozen-lockfile
- name: Build Storybook
run: yarn build-storybook
- name: Deploy Storybook
uses: chromaui/action@v1
with:
projectToken: ${{ secrets.STORYBOOK_TOKEN }}