ci: Add build stage
So far we are only performing a basic syntax check on javascript sources; it's time to test the C code as well. As mutter is tightly coupled, we bite the bullet and build it as well, either using a matching branch (if it exists), or current master. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/408
This commit is contained in:
parent
f248b91f82
commit
2d4989e937
@ -1,10 +1,17 @@
|
|||||||
stages:
|
stages:
|
||||||
- review
|
- review
|
||||||
- source_check
|
- source_check
|
||||||
|
- build
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
JS_LOG: "js-report.txt"
|
JS_LOG: "js-report.txt"
|
||||||
|
|
||||||
|
.only_default: &only_default
|
||||||
|
only:
|
||||||
|
- branches
|
||||||
|
- tags
|
||||||
|
- merge_requests
|
||||||
|
|
||||||
check_commit_log:
|
check_commit_log:
|
||||||
image: registry.fedoraproject.org/fedora:latest
|
image: registry.fedoraproject.org/fedora:latest
|
||||||
stage: review
|
stage: review
|
||||||
@ -23,6 +30,7 @@ js_check:
|
|||||||
script:
|
script:
|
||||||
- find js -name '*.js' -exec js60 -c -s '{}' ';' 2>&1 | tee $JS_LOG
|
- find js -name '*.js' -exec js60 -c -s '{}' ';' 2>&1 | tee $JS_LOG
|
||||||
- (! grep -q . $JS_LOG)
|
- (! grep -q . $JS_LOG)
|
||||||
|
<<: *only_default
|
||||||
only:
|
only:
|
||||||
changes:
|
changes:
|
||||||
- js/**/*
|
- js/**/*
|
||||||
@ -30,6 +38,16 @@ js_check:
|
|||||||
paths:
|
paths:
|
||||||
- ${JS_LOG}
|
- ${JS_LOG}
|
||||||
when: on_failure
|
when: on_failure
|
||||||
only:
|
|
||||||
- merge_requests
|
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
|
||||||
|
19
.gitlab-ci/Dockerfile
Normal file
19
.gitlab-ci/Dockerfile
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
FROM registry.gitlab.gnome.org/gnome/mutter/master:v1
|
||||||
|
|
||||||
|
RUN dnf -y update && dnf -y upgrade && \
|
||||||
|
dnf install -y 'dnf-command(copr)' && \
|
||||||
|
dnf copr enable -y fmuellner/gnome-shell-ci && \
|
||||||
|
dnf builddep -y gnome-shell --setopt=install_weak_deps=False && \
|
||||||
|
|
||||||
|
# bt only exports HAVE_BLUETOOTH to js, rest are outdated build-requires
|
||||||
|
dnf remove -y gnome-bluetooth-libs-devel dbus-glib-devel \
|
||||||
|
upower-devel python3-devel && \
|
||||||
|
|
||||||
|
# We'll build mutter ourselves
|
||||||
|
dnf remove -y --noautoremove mutter mutter-devel && \
|
||||||
|
|
||||||
|
# Needed for tests
|
||||||
|
dnf install -y '*/xvfb-run' gdm-lib accountsservice-libs && \
|
||||||
|
|
||||||
|
dnf clean all && \
|
||||||
|
rm -rf /var/cache/dnf
|
31
.gitlab-ci/checkout-mutter.sh
Executable file
31
.gitlab-ci/checkout-mutter.sh
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
shell_branch=$(git describe --contains --all HEAD)
|
||||||
|
mutter_target=
|
||||||
|
|
||||||
|
git clone https://gitlab.gnome.org/GNOME/mutter.git
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo Checkout failed
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd mutter
|
||||||
|
|
||||||
|
if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
|
||||||
|
merge_request_remote=${CI_MERGE_REQUEST_SOURCE_PROJECT_URL//gnome-shell/mutter}
|
||||||
|
merge_request_branch=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
|
||||||
|
|
||||||
|
echo Looking for $merge_request_branch on remote ...
|
||||||
|
if git fetch $merge_request_remote $merge_request_branch >/dev/null 2>&1; then
|
||||||
|
mutter_target=FETCH_HEAD
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$mutter_target" ]; then
|
||||||
|
mutter_target=$(git branch -r -l $shell_branch)
|
||||||
|
mutter_target=${mutter_target:-origin/master}
|
||||||
|
echo Using $mutter_target instead
|
||||||
|
fi
|
||||||
|
|
||||||
|
git checkout $mutter_target
|
Loading…
Reference in New Issue
Block a user