-
-
Notifications
You must be signed in to change notification settings - Fork 260
133 lines (126 loc) · 3.86 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
name: CI - Push
'on':
push:
branches:
- main
jobs:
lint:
name: Run Linters
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v3
- name: Setup Node.JS
uses: actions/setup-node@v3
with:
node-version: '16'
- name: Cache node modules
uses: actions/cache@v3.0.6
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Website - Install dependencies
run: cd website && npm ci
- id: yamllint
name: Yamllint
uses: reviewdog/action-yamllint@v1
with:
github_token: ${{ secrets.github_token }}
reporter: github-check
yamllint_flags: '.'
fail_on_error: true
filter_mode: nofilter
- if: always()
id: eslint
name: ESLint
uses: reviewdog/action-eslint@v1.17
with:
github_token: ${{ secrets.github_token }}
reporter: github-check
eslint_flags: --ext js,jsx .
fail_on_error: true
filter_mode: nofilter
workdir: website
prettier:
name: Prettier - Enforce code style
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v3
- name: Setup Node.JS
uses: actions/setup-node@v3
with:
node-version: '16'
- name: Cache node modules
uses: actions/cache@v3.0.6
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install dependencies
run: npm ci
- id: prettier
name: Prettier
uses: creyD/prettier_action@v4.2
with:
dry: true
prettier_options: --write .
env:
GITHUB_TOKEN: ${{ secrets.github_token }}
gh-pages:
name: Deploy to GH Pages
needs:
- lint
- prettier
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v3
with:
ref: ${{ github.head_ref }}
- name: Setup Node.JS
uses: actions/setup-node@v3
with:
node-version: '16'
- name: Cache node modules
uses: actions/cache@v3.0.6
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install dependencies
run: npm ci
- name: Website - Install dependencies
run: cd website && npm ci
- name: Website - Build
run: cd website && npm run build
- name: Create .nojekyll file
run: touch website/build/.nojekyll
- name: Deploy to GitHub Pages
uses: s0/git-publish-subdir-action@v2.5.1
env:
REPO: self
BRANCH: gh-pages
FOLDER: website/build
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MESSAGE: '🤖 Deploy static site for change: {msg}'
SKIP_EMPTY_COMMITS: true