ci: Check snippets in coding style
To avoid having the coding style get out of sync with the actual coding style in the future, run eslint on the individual snippets when either the guide or the linter config change. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3146>
This commit is contained in:
parent
b496a9cf9f
commit
a6d35fdd2a
@ -149,6 +149,21 @@ eslint:
|
||||
junit: ${LINT_LOG}
|
||||
when: always
|
||||
|
||||
eslint-doc:
|
||||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
- .gnome-shell.fedora
|
||||
stage: review
|
||||
script:
|
||||
- export NODE_PATH=$(npm root -g)
|
||||
- ./.gitlab-ci/eslint-coding-style.sh
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||
changes:
|
||||
- HACKING.md
|
||||
- .eslintrc.yml
|
||||
- lint/*
|
||||
|
||||
potfile_c_check:
|
||||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
|
43
.gitlab-ci/eslint-coding-style.sh
Executable file
43
.gitlab-ci/eslint-coding-style.sh
Executable file
@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
|
||||
SRCDIR=$(realpath $(dirname $0)/..)
|
||||
OUTDIR=$(mktemp --directory --tmpdir=$SRCDIR)
|
||||
trap "rm -rf $OUTDIR" EXIT
|
||||
|
||||
# Turn ```javascript``` code snippets in the
|
||||
# style guide into .js files in $OUTDIR
|
||||
awk --assign dir=$OUTDIR -- '
|
||||
BEGIN {
|
||||
do_print = 0;
|
||||
cur = 0;
|
||||
}
|
||||
|
||||
# end of code snippet
|
||||
/```$/ {
|
||||
do_print = 0;
|
||||
cur++;
|
||||
}
|
||||
|
||||
do_print {
|
||||
# remove one level of indent
|
||||
sub(" ","")
|
||||
|
||||
# the following are class snippets, turn them
|
||||
# into functions to not confuse eslint
|
||||
sub("moveActor","function moveActor")
|
||||
sub("desaturateActor","function desaturateActor")
|
||||
|
||||
# finally, append to the currently generated .js file
|
||||
print >> dir "/" cur ".js";
|
||||
}
|
||||
|
||||
# start of code snippet
|
||||
/```javascript$/ {
|
||||
do_print = 1;
|
||||
}
|
||||
' HACKING.md
|
||||
|
||||
eslint \
|
||||
--rule 'no-undef: off' \
|
||||
--rule 'no-unused-vars: off' \
|
||||
--rule 'no-invalid-this: off' $OUTDIR/*.js
|
Loading…
Reference in New Issue
Block a user