forked from KDE/kstars
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This MR brings in a GitLab-CI pipeline. The pipeline consolidates a docker builder, then sequentially builds kstars and runs all tests, including UI tests. Because the size of the build folder is large, the pipeline uses a single stage to run both build and test. docker/Dockerfile provides a builder image, currently stored as tallfurryman/kstars-ci. How to record the activity of the test through xvfb-run: xvfb-run --listen-tcp --server-num 42 -s "-ac -screen 0 1920x1080x24" \ bash -c 'sleep 1 ; QT_QPA_PLATFORM=eglfs make test ARGS="-VV" ; sleep 15' & \ ffmpeg -f x11grab -video_size 1920x1080 -i :42 -codec:v libx264 -qp 0 -preset ultrafast ~/test_record.mp4 This is a single-line command producing two bash jobs. The tests run in the background, and the recorder on foreground. Press 'q' to terminate ffmpeg properly during the 15 seconds given at the end of the test. Video is recorded to ~/test_record.mp4.v
- Loading branch information
1 parent
d6d6dbc
commit cffc7f7
Showing
6 changed files
with
234 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
# This YAML recipe builds KStars with INDI support, then runs all tests | ||
|
||
# This is from packaging/linux/debian/control build-depends - fix that first if there is an issue in the CI build | ||
.install_build_dependencies: &install_build_dependencies | ||
- apt update && apt -y install --no-install-recommends software-properties-common | ||
- apt update && add-apt-repository ppa:mutlaqja/ppa | ||
- > | ||
apt update && apt -y install --no-install-recommends | ||
gcc-multilib | ||
g++-multilib | ||
make | ||
gettext | ||
coreutils | ||
cmake | ||
extra-cmake-modules | ||
qtbase5-dev | ||
qtdeclarative5-dev | ||
qtmultimedia5-dev | ||
qtpositioning5-dev | ||
libqt5websockets5-dev | ||
libqt5svg5-dev | ||
libqt5sql5-sqlite | ||
kdoctools-dev | ||
libkf5config-dev | ||
libkf5guiaddons-dev | ||
libkf5i18n-dev | ||
libkf5newstuff-dev | ||
libkf5notifications-dev | ||
libkf5xmlgui-dev | ||
libkf5plotting-dev | ||
libkf5crash-dev | ||
libkf5notifyconfig-dev | ||
libeigen3-dev | ||
zlib1g-dev | ||
libcfitsio-dev | ||
libnova-dev | ||
libindi-dev | ||
indi-bin | ||
wcslib-dev | ||
libraw-dev | ||
libgsl-dev | ||
phonon4qt5-backend-vlc | ||
qt5keychain-dev | ||
libsecret-1-dev | ||
# This is from packaging/linux/debian/control recommends/depends - fix that first if there is an issue in the CI build | ||
.install_test_dependencies: &install_test_dependencies | ||
- apt update && apt -y install --no-install-recommends software-properties-common | ||
- apt update && add-apt-repository ppa:mutlaqja/ppa && add-apt-repository ppa:pch/phd2 | ||
- > | ||
apt update && | ||
apt -y --no-install-recommends install | ||
make | ||
cmake | ||
extra-cmake-modules | ||
xplanet | ||
xplanet-images | ||
astrometry.net | ||
kded5 | ||
kinit | ||
libindi1 | ||
indi-bin | ||
breeze-icon-theme | ||
libqt5sql5-sqlite | ||
qml-module-qtquick-controls | ||
phd2 | ||
xvfb | ||
#image: ubuntu:latest | ||
|
||
# Run the full validation in one step | ||
# The artifacts take far too much time to propagate from one step to the other | ||
# The cache is unreliable, and only works on the same runner if there is no shared cache - use it for ccache instead | ||
# Consolidate runner with build packages and build | ||
build-and-test: | ||
stage: test | ||
interruptible: true | ||
image: tallfurryman/kstars-ci | ||
# before_script: | ||
# - *install_build_dependencies | ||
# - *install_test_dependencies | ||
script: | ||
- mkdir -p kstars-build | ||
- cd kstars-build | ||
- cmake -DCMAKE_BUILD_TYPE=Release .. | ||
- make -j$(nproc) clean all install | ||
- rm -rf Testing | ||
- xvfb-run make test QT_TEST_TIMEOUT_FUNCTION=600000 QT_QPA_PLATFORM=eglfs ARGS='-T test -V --output-on-failure --no-compress-output' || true | ||
- apt install -y --no-install-recommends libsaxon-java openjdk-11-jre-headless | ||
- saxon-xslt -u $(find ./Testing -name Test.xml) https://raw.githubusercontent.com/rpavlik/jenkins-ctest-plugin/master/ctest-to-junit.xsl > ./junit_result.xml | ||
artifacts: | ||
reports: | ||
junit: | ||
kstars-build/junit_result.xml | ||
|
||
# This part kept for reference, does not work on our gitlab instance | ||
# Mainly because of the propagation of artifact from stage build to stage test | ||
# Probably because the upload uses a webdav REST API, and there are many large files in the list | ||
# In the meantime, following up on the many gitlab issues reporting that problem | ||
|
||
# We build and test | ||
#stages: | ||
# - build | ||
# - test | ||
|
||
# We cache the build folder per job and per branch | ||
# cache: | ||
# key: "$CI_COMMIT_REF_SLUG" | ||
# paths: | ||
# - kstars-build/ | ||
|
||
# Consolidate runner with build packages and build | ||
#build-kstars: | ||
# stage: build | ||
# interruptible: true | ||
# before_script: | ||
# - *install_build_dependencies | ||
# script: | ||
# - mkdir -p kstars-build | ||
# - cd kstars-build | ||
# - cmake -DCMAKE_BUILD_TYPE=Release .. | ||
# - make -j$(nproc) clean all | ||
# artifacts: | ||
# expire_in: 3600 sec | ||
# paths: | ||
# - kstars-build/ | ||
# exclude: | ||
# - kstars-build/**/*.o | ||
|
||
# Consolidate runner with test packages and test | ||
#test-kstars: | ||
# stage: test | ||
# interruptible: true | ||
# needs: | ||
# - build-kstars | ||
# dependencies: | ||
# - build-kstars | ||
# before_script: | ||
# - *install_test_dependencies | ||
# script: | ||
# - cd kstars-build | ||
# - rm -rf Testing | ||
# - xvfb-run -a make test QT_TEST_TIMEOUT_FUNCTION=600000 ARGS='-T test --no-compress-output' | ||
# artifacts: | ||
# reports: | ||
# junit: | ||
# kstars-build/Testing/**.xml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
FROM ubuntu:latest | ||
|
||
# Suitable for builds | ||
RUN apt update && apt -y install --no-install-recommends software-properties-common | ||
RUN apt update && add-apt-repository ppa:mutlaqja/ppa | ||
RUN apt update && apt -y install --no-install-recommends \ | ||
gcc-multilib \ | ||
g++-multilib \ | ||
make \ | ||
gettext \ | ||
coreutils \ | ||
cmake \ | ||
extra-cmake-modules \ | ||
qtbase5-dev \ | ||
qtdeclarative5-dev \ | ||
qtmultimedia5-dev \ | ||
qtpositioning5-dev \ | ||
libqt5websockets5-dev \ | ||
libqt5svg5-dev \ | ||
libqt5sql5-sqlite \ | ||
kdoctools-dev \ | ||
libkf5config-dev \ | ||
libkf5guiaddons-dev \ | ||
libkf5i18n-dev \ | ||
libkf5newstuff-dev \ | ||
libkf5notifications-dev \ | ||
libkf5xmlgui-dev \ | ||
libkf5plotting-dev \ | ||
libkf5crash-dev \ | ||
libkf5notifyconfig-dev \ | ||
libeigen3-dev \ | ||
zlib1g-dev \ | ||
libcfitsio-dev \ | ||
libnova-dev \ | ||
libindi-dev \ | ||
indi-bin \ | ||
wcslib-dev \ | ||
libraw-dev \ | ||
libgsl-dev \ | ||
phonon4qt5-backend-vlc \ | ||
qt5keychain-dev \ | ||
libsecret-1-dev | ||
|
||
# Suitable for tests | ||
RUN apt update && add-apt-repository ppa:mutlaqja/ppa | ||
RUN apt update && add-apt-repository ppa:pch/phd2 | ||
RUN apt update && apt -y --no-install-recommends install \ | ||
make \ | ||
cmake \ | ||
extra-cmake-modules \ | ||
xplanet \ | ||
xplanet-images \ | ||
astrometry.net \ | ||
kded5 \ | ||
kinit \ | ||
libindi1 \ | ||
indi-bin \ | ||
breeze-icon-theme \ | ||
libqt5sql5-sqlite \ | ||
qml-module-qtquick-controls \ | ||
gsc gsc-data \ | ||
phd2 \ | ||
xvfb | ||
|
||
CMD /bin/bash | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters