forked from matrix-org/matrix-react-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
181 lines (156 loc) · 6.27 KB
/
static_analysis.yaml
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
name: Static Analysis
on:
workflow_dispatch:
pull_request: {}
merge_group:
types: [checks_requested]
push:
branches: [develop, master]
repository_dispatch:
types: [upstream-sdk-notify]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true
env:
# fetchdep.sh needs to know our PR number
PR_NUMBER: ${{ github.event.pull_request.number }}
jobs:
ts_lint:
name: "Typescript Syntax Check"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: "yarn"
# VERJI SPECIFIC - yarn link FOR matrix-react-sdk-module-api on verji-main branch
#- name: "Veri - Clone Github Repo Action - Download verji-main of module-api"
# # You may pin to the exact commit or the version.
# # uses: GuillaumeFalourd/clone-github-repo-action@19817562c346ff60f9935158dede6c5ece8fd0ac
# uses: GuillaumeFalourd/[email protected]
# with:
# # Repository Owner
# owner: verji
# # Repository name
# repository: "matrix-react-sdk-module-api"
# # PAT with repository scope (https://github.com/settings/tokens)
# access-token: ${{secrets.PAT}}
# # Depth of the clone (default: full history)
# depth: 1
# # Branch name (default: main)
# branch: "verji-main"
# # Clone with submodules
# submodule: false # optional, default is false
# - name: "Verji - Build and yarn link matrix-react-sdk-module-api (prepublish)"
# uses: Azure/powershell@v2
# with:
# # Yarn link matrix-react-sdk-module-api #--skipLibCheck build --skipLibCheck
# inlineScript: "cd matrix-react-sdk-module-api && yarn && yarn link && yarn prepublishOnly && cd .. && cd .. && cd 'matrix-react-sdk'"
# azPSVersion: "latest"
#END VERJI SPECIFIC
- name: Install Deps
run: "./scripts/ci/install-deps.sh --ignore-scripts"
# VERJI
# - name: "Verji - yarn link matrix-react-sdk-module-api/verji-main into matrix-react-sdk"
# uses: Azure/powershell@v2
# with:
# # Yarn link matrix-react-sdk-module-api #--skipLibCheck
# inlineScript: "yarn link '@matrix-org/react-sdk-module-api'"
# azPSVersion: "latest"
# VERJI END
- name: Typecheck
run: "yarn run lint:types"
- name: Switch js-sdk to release mode
working-directory: node_modules/matrix-js-sdk
run: |
scripts/switch_package_to_release.js
yarn install
yarn run build:compile
yarn run build:types
- name: Typecheck (release mode)
run: "yarn run lint:types"
# Temporary while we directly import matrix-js-sdk/src/* which means we need
# certain @types/* packages to make sense of matrix-js-sdk types.
#- name: Typecheck (release mode; no yarn link)
# if: github.event_name != 'pull_request' && github.ref_name != 'master'
# run: |
# yarn unlink matrix-js-sdk
# yarn add github:matrix-org/matrix-js-sdk#develop
# yarn install --force
# yarn run lint:types
i18n_lint:
name: "i18n Check"
# VERJI skip i18n by setting false
if: ${{false}}
uses: matrix-org/matrix-web-i18n/.github/workflows/i18n_check.yml@main
with:
hardcoded-words: "Element"
allowed-hardcoded-keys: |
console_dev_note
labs|element_call_video_rooms
labs|feature_disable_call_per_sender_encryption
voip|element_call
rethemendex_lint:
# VERJI skip Rethemendex check by setting false
if: ${{false}}
name: "Rethemendex Check"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: ./res/css/rethemendex.sh
- run: git diff --exit-code
js_lint:
name: "ESLint"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: "yarn"
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install"
- name: Run Linter
run: "yarn run lint:js"
style_lint:
name: "Style Lint"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: "yarn"
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install"
- name: Run Linter
run: "yarn run lint:style"
workflow_lint:
name: "Workflow Lint"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: "yarn"
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --frozen-lockfile"
- name: Run Linter
run: "yarn lint:workflows"
analyse_dead_code:
name: "Analyse Dead Code"
runs-on: ubuntu-latest
# VERJI skip analyse dead code, as it fails due to unused expoxt of WrapperLifecycle/listener. We don't understand why.
if: ${{false}}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: "yarn"
- name: Install Deps
run: "scripts/ci/layered.sh"
- name: Dead Code Analysis
run: |
cd element-web
yarn run analyse:unused-exports