Skip to content

Merge pull request #4206 from crazyserver/MOBILE-4616 #5337

Merge pull request #4206 from crazyserver/MOBILE-4616

Merge pull request #4206 from crazyserver/MOBILE-4616 #5337

Workflow file for this run

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 "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 "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 "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 130
- name: JavaScript code compatibility
run: |
npx check-es-compat www/*.js --polyfills="\{Array,String,TypedArray\}.prototype.at,Object.hasOwn"
npx check-es-compat cordova-plugin-moodleapp/www/*.js