72be8eeb31
Running dnf to update and install additional packages every time the job is executed slows down the CI pipeline. Avoid this by using another custom images for JS source checks. In addition to the js shell we use for the existing syntax check, also include eslint for future jobs and some extension-specific tooling to make the image more useful to extension authors. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/408
89 lines
2.1 KiB
YAML
89 lines
2.1 KiB
YAML
stages:
|
|
- review
|
|
- source_check
|
|
- build
|
|
- test
|
|
|
|
variables:
|
|
JS_LOG: "js-report.txt"
|
|
POT_LOG: "pot-update.txt"
|
|
|
|
.only_default: &only_default
|
|
only:
|
|
- branches
|
|
- tags
|
|
- merge_requests
|
|
|
|
check_commit_log:
|
|
image: registry.fedoraproject.org/fedora:latest
|
|
stage: review
|
|
before_script:
|
|
- dnf install -y git
|
|
script:
|
|
- ./.gitlab-ci/check-commit-log.sh
|
|
only:
|
|
- merge_requests
|
|
|
|
js_check:
|
|
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1
|
|
stage: source_check
|
|
script:
|
|
- find js -name '*.js' -exec js60 -c -s '{}' ';' 2>&1 | tee $JS_LOG
|
|
- (! grep -q . $JS_LOG)
|
|
<<: *only_default
|
|
only:
|
|
changes:
|
|
- js/**/*
|
|
artifacts:
|
|
paths:
|
|
- ${JS_LOG}
|
|
when: on_failure
|
|
|
|
build:
|
|
image: registry.gitlab.gnome.org/gnome/gnome-shell/master:v1
|
|
stage: build
|
|
before_script:
|
|
- .gitlab-ci/checkout-mutter.sh
|
|
- meson mutter mutter/build --prefix=/usr -Dtests=false
|
|
- ninja -C mutter/build install
|
|
script:
|
|
- meson . build -Dbuiltype=debugoptimized
|
|
- ninja -C build
|
|
- ninja -C build install
|
|
<<: *only_default
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- mutter
|
|
- build
|
|
|
|
test:
|
|
image: registry.gitlab.gnome.org/gnome/gnome-shell/master:v1
|
|
stage: test
|
|
before_script:
|
|
- ninja -C mutter/build install
|
|
script:
|
|
- xvfb-run meson test -C build --no-rebuild
|
|
<<: *only_default
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- build/meson-logs/testlog.txt
|
|
when: on_failure
|
|
|
|
test-pot:
|
|
image: registry.gitlab.gnome.org/gnome/gnome-shell/master:v1
|
|
stage: test
|
|
before_script:
|
|
- ninja -C mutter/build install
|
|
script:
|
|
# Check that pot files are generated correctly:
|
|
# https://savannah.gnu.org/bugs/?50920#comment5
|
|
- ninja -C build gnome-shell-pot 2>&1 | awk '
|
|
BEGIN { start=0; }
|
|
start==1 { print $0; }
|
|
/gnome-shell-pot/ { start=1; }
|
|
' | tee $POT_LOG
|
|
- (! grep -q . $POT_LOG)
|
|
<<: *only_default
|