forked from moodlehq/moodleapp
-
Notifications
You must be signed in to change notification settings - Fork 0
85 lines (79 loc) · 3.03 KB
/
testing.yml
File metadata and controls
85 lines (79 loc) · 3.03 KB
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
name: Testing
on: [push, pull_request]
concurrency:
group: testing-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Install npm packages
run: |
npm ci --no-audit
npm ci --no-audit --prefix cordova-plugin-moodleapp
- name: Check langindex
run: |
result=$(cat scripts/langindex.json | grep \"TBD\" | wc -l); test $result -eq 0
if [ $result -ne 0 ]; then
echo "::error::There are lang strings to be decided on langindex.json"
exit 1
fi
gulp
langcount=`jq -r '. | length' src/assets/lang/en.json`
langindexcount=`jq -r '. | length' scripts/langindex.json`
if [ $langcount -ne $langindexcount ]; then
echo "::error::Lang file has $langcount while langindex $langindexcount"
exit 1
fi
langkeys=`jq -r 'keys[]' src/assets/lang/en.json`
langindex=`jq -r 'keys[]' scripts/langindex.json`
found=0
for i in $langkeys; do
skip=
for j in $langindex; do
if [ "$i" == "$j" ]; then
skip=1
break;
fi
done
[[ -n $skip ]] || { echo "$i key not found"; found=$(($found + 1)); }
done
if [ $found -ne 0 ]; then
echo "::error::Found $found missing langkeys"
exit 1
fi
- name: Run Linters (ignore warnings)
run: |
npm run lint -- --quiet
npm run lint --prefix cordova-plugin-moodleapp
- name: Run tests
run: npm run test:ci
- name: Production builds
run: |
npm run build:prod
npm run prod --prefix cordova-plugin-moodleapp
env:
MOODLE_APP_CIRCULAR_DEPENDENCIES: true
- name: Circular dependencies
run: |
cat circular-dependencies
lines=$(cat circular-dependencies | wc -l)
echo "Total circular dependencies: $lines"
test $lines -eq 80
- name: JavaScript code compatibility
run: |
# Check for ES2021 features, allowing ErrorCause feature.
# browserslist is not used here because of a bug in es-check
# See https://github.com/yowainwright/es-check/blob/main/constants.js to see the list of features and polyfills.
npx es-check --config=.escheckrc
# In order to support Chrome 93 and iOS 15 we need to find Static initialization blocks are not present in the code.
# See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Static_initialization_blocks
# acorn is used by es-check but cannot check for this feature only, so we need to check it manually.
if grep -qE '(^|[^-])\bstatic[ ]*\{' www/*.js cordova-plugin-moodleapp/www/*.js; then
echo "::error::Static initialization blocks are not supported in Chrome 93 and iOS 15."
exit 1
fi