davical/.gitlab-ci.yml
Andrew Ruthven a9ffb1e67c We need rst2pdf installed for testing
Looks like this has been removed as a dependency from a package.
2024-12-30 20:17:18 +13:00

181 lines
5.1 KiB
YAML

stages:
- build
- test
- testall
- testldap
- testldapmemcache
build:
stage: build
image: debian:unstable
script:
- apt-get -y update
- bash -c 'mkdir -p /usr/share/man/man{0..10}'
- apt-get -y install build-essential devscripts fakeroot dh-exec jdupes doxygen graphviz php-cli phpunit rst2pdf
- mv debian/changelog debian/changelog.old
- >
cat
<(echo "davical ($(cat VERSION)-99~git$(date +"%Y%m%d")-$(git rev-parse --short $CI_COMMIT_SHA)) unstable; urgency=medium")
<(echo "")
<(echo " * Build on CI")
<(echo "")
<(echo " -- ${GITLAB_USER_NAME} <${GITLAB_USER_EMAIL}> $(date -R)")
<(echo "")
debian/changelog.old
>debian/changelog
- rm debian/changelog.old
- curl 'https://gitlab.com/davical-project/awl/-/archive/master/awl-master.tar.gz' | tar zxf -
- mv awl-master /usr/share/awl/
- debuild -us -uc -b -d
- 'mv ../davical_*_all.deb ./davical.deb'
artifacts:
paths:
- '*.deb'
test:
stage: test
image: debian:unstable
artifacts:
paths:
- testing/report.xml
- apache2_log/*
- davical_log/*
reports:
junit: testing/report.xml
when:
always
script:
- testing/gitlab_ci_script.sh
- cd testing && su testrunner -c 'IS_CI=yes ALLSUITES="regression-suite binding carddav scheduling webui ischedule" ./run_regressions.sh all x'
after_script:
- testing/gitlab_ci_after_script.sh build
test_bullseye_carddavclientinterop:
stage: testall
image: debian:bullseye
artifacts:
paths:
- testing/report.xml
- carddavclient-master/testreports/unit/results.html
- apache2_log/*
- davical_log/*
- carddavclient-master/testreports/interop/*
reports:
junit:
- testing/report.xml
- carddavclient-master/testreports/unit/results.html
when:
always
script:
- testing/gitlab_ci_script.sh interop
# Needed to create the regression database. Could be replaced by a basic suite.
- cd testing && su testrunner -c 'IS_CI=yes ./run_regressions.sh regression-suite x'
- cd ../carddavclient-master && vendor/bin/phpunit -c tests/Interop/phpunit.xml --no-coverage
after_script:
- testing/gitlab_ci_after_script.sh
build_bullseye_latestphp:
stage: testall
image: php:apache-bullseye
script:
- apt-get -y update
- bash -c 'mkdir -p /usr/share/man/man{0..10}'
- apt-get -y install build-essential devscripts fakeroot dh-exec jdupes doxygen graphviz rst2pdf
- mv debian/changelog debian/changelog.old
- >
cat
<(echo "davical ($(cat VERSION)-99~git$(date +"%Y%m%d")-$(git rev-parse --short $CI_COMMIT_SHA)) unstable; urgency=medium")
<(echo "")
<(echo " * Build on CI")
<(echo "")
<(echo " -- ${GITLAB_USER_NAME} <${GITLAB_USER_EMAIL}> $(date -R)")
<(echo "")
debian/changelog.old
>debian/changelog
- rm debian/changelog.old
- curl 'https://gitlab.com/davical-project/awl/-/archive/master/awl-master.tar.gz' | tar zxf -
- mv awl-master /usr/share/awl/
- curl -o /usr/bin/phpunit -L https://phar.phpunit.de/phpunit-9.phar
- chmod +x /usr/bin/phpunit
- debuild --prepend-path=/usr/local/bin -us -uc -b -d
- 'mv ../davical_*_all.deb ./davical.deb'
artifacts:
paths:
- '*.deb'
test_bullseye_latestphp:
stage: testall
image: php:apache-bullseye
artifacts:
paths:
- testing/report.xml
- apache2_log/*
- davical_log/*
reports:
junit: testing/report.xml
when:
always
script:
- testing/gitlab_ci_script.sh
- cd testing && su testrunner -c 'IS_CI=yes ALLSUITES="regression-suite binding carddav scheduling webui ischedule" ./run_regressions.sh all x'
after_script:
- testing/gitlab_ci_after_script.sh
test_memcache:
stage: testall
image: debian:unstable
artifacts:
paths:
- testing/report.xml
- apache2_log/*
- davical_log/*
reports:
junit: testing/report.xml
when:
always
script:
- testing/gitlab_ci_script.sh memcache
- cd testing && su testrunner -c 'IS_CI=yes ALLSUITES="regression-suite binding carddav scheduling webui ischedule" ./run_regressions.sh all x'
after_script:
- testing/gitlab_ci_after_script.sh
test_ldap:
stage: testldap
image: debian:unstable
artifacts:
paths:
- testing/report.xml
- apache2_log/*
- davical_log/*
reports:
junit: testing/report.xml
when:
always
script:
- testing/gitlab_ci_script.sh ldap
- cd testing && su testrunner -c 'IS_CI=yes ALLSUITES="ldap" ./run_regressions.sh all x'
after_script:
- testing/gitlab_ci_after_script.sh
# Only test if the memcache and LDAP tests pass
test_memcache_and_ldap:
stage: testldapmemcache
image: debian:unstable
artifacts:
paths:
- testing/report.xml
- apache2_log/*
- davical_log/*
- davical_conf/*
reports:
junit: testing/report.xml
when:
always
script:
- testing/gitlab_ci_script.sh ldap_memcache_auth
- cd testing && su testrunner -c 'IS_CI=yes ALLSUITES="ldap ldap_memcache" ./run_regressions.sh all x'
after_script:
- testing/gitlab_ci_after_script.sh