-
-
Notifications
You must be signed in to change notification settings - Fork 0
141 lines (141 loc) · 3.93 KB
/
cicd.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
name: CI/CD
on:
push:
branches: [ main ]
pull_request: {}
jobs:
Install:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.5.3
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: yarn
- name: Install modules
run: yarn install --frozen-lockfile
Build:
runs-on: ubuntu-latest
needs: [Install]
steps:
- uses: actions/checkout@v3.5.3
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: yarn
- name: Install modules
run: yarn install --frozen-lockfile
- name: Build
run: yarn build
StorybookBuild:
runs-on: ubuntu-latest
needs: [ Install ]
steps:
- uses: actions/checkout@v3.5.3
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: yarn
- name: Install modules
run: yarn install --frozen-lockfile
- name: Build
run: yarn build-storybook
Test:
services:
snapshot:
image: fwouts/chrome-screenshot:1.2.2
runs-on: ubuntu-latest
needs: [ Install ]
steps:
- uses: actions/checkout@v3.5.3
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: yarn
- name: Install modules
run: yarn install --frozen-lockfile
- name: Test
id: test
run: yarn test --coverage --json --outputFile=result.json --testLocationInResults
- name: Report
uses: tanmen/jest-reporter@v1
if: always()
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
LisenceScan:
if: ${{ github.event_name != 'pull_request' }}
needs: [ Test, Build ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.5.3
- uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: 'yarn'
- run: yarn install --frozen-lockfile
env:
NODE_AUTH_TOKEN: ${{ secrets.PACKAGE_TOKEN }}
- name: Check license
uses: fossas/fossa-action@v1
with:
api-key: ${{ secrets.FOSSA_API_KEY }}
Publish:
if: ${{ github.event_name != 'pull_request' }}
runs-on: ubuntu-latest
needs: [ Test, Build ]
permissions:
contents: write
issues: write
pull-requests: write
id-token: write
steps:
- uses: actions/checkout@v3.5.3
with:
fetch-depth: 0
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: yarn
registry-url: https://registry.npmjs.org/
- name: Install modules
run: yarn install --frozen-lockfile
- name: Build
run: yarn build
- name: Publish
run: yarn semantic-release
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
GH_TOKEN: ${{ secrets.GH_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
StorybookPublish:
if: ${{ github.event_name != 'pull_request' }}
needs: [ Test, Build, StorybookBuild ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.5.3
with:
fetch-depth: 0
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: yarn
- run: yarn install --frozen-lockfile
- name: Build
run: yarn build-storybook
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4.4.3
with:
branch: gh-pages
folder: storybook-static