This repository has been archived by the owner on Jun 10, 2024. It is now read-only.
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
name: Cyrus IMAP CI | |
on: | |
push: | |
pull_request: | |
branches: | |
- master | |
- main | |
- cyrus-imapd-3.8 | |
- cyrus-imapd-3.6 | |
- cyrus-imapd-3.4 | |
- cyrus-imapd-3.2 | |
- cyrus-imapd-3.0 | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
container: | |
image: cyrusimapdocker/cyrus-buster:latest | |
options: --sysctl net.ipv6.conf.all.disable_ipv6=0 --init | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: configure and build | |
shell: bash | |
run: | | |
git config --global --add safe.directory /__w/cyrus-imapd/cyrus-imapd | |
echo "building cyrus version" $(./tools/git-version.sh) | |
./tools/build-with-cyruslibs.sh | |
- name: report cyrus version | |
shell: bash | |
run: | | |
/usr/cyrus/libexec/master -V | |
/usr/cyrus/sbin/cyr_buildinfo | |
- name: update jmap test suite | |
working-directory: /srv/JMAP-TestSuite.git | |
shell: bash | |
run: | | |
git fetch | |
git checkout origin/master | |
git clean -f -x -d | |
cpanm --installdeps . | |
- name: install missing deps | |
shell: bash | |
run: | | |
cpanm IO::File::fcntl | |
cpanm Digest::CRC | |
cpanm XML::Simple # XXX could be grabbed from apt by docker image | |
- name: set up cassandane | |
working-directory: cassandane | |
shell: bash | |
run: | | |
cp -af cassandane.ini.dockertests cassandane.ini | |
chown cyrus:mail cassandane.ini | |
make -j4 | |
- name: run cassandane quietly | |
id: cass1 | |
continue-on-error: true | |
working-directory: cassandane | |
run: setpriv --reuid=cyrus --regid=mail --clear-groups --inh-caps='-chown,-dac_override,-dac_read_search,-fowner,-fsetid,-kill,-setgid,-setuid,-setpcap,-linux_immutable,-net_bind_service,-net_broadcast,-net_admin,-net_raw,-ipc_lock,-ipc_owner,-sys_module,-sys_rawio,-sys_chroot,-sys_ptrace,-sys_pacct,-sys_admin,-sys_boot,-sys_nice,-sys_resource,-sys_time,-sys_tty_config,-mknod,-lease,-audit_write,-audit_control,-setfcap,-mac_override,-mac_admin,-syslog,-wake_alarm,-block_suspend,-audit_read,-cap_38,-cap_39,-cap_40' ./testrunner.pl --slow -f prettier -j 4 !Test::Core | |
- name: rerun cassandane failures noisily | |
if: ${{ steps.cass1.outcome == 'failure' }} | |
working-directory: cassandane | |
run: setpriv --reuid=cyrus --regid=mail --clear-groups --inh-caps='-chown,-dac_override,-dac_read_search,-fowner,-fsetid,-kill,-setgid,-setuid,-setpcap,-linux_immutable,-net_bind_service,-net_broadcast,-net_admin,-net_raw,-ipc_lock,-ipc_owner,-sys_module,-sys_rawio,-sys_chroot,-sys_ptrace,-sys_pacct,-sys_admin,-sys_boot,-sys_nice,-sys_resource,-sys_time,-sys_tty_config,-mknod,-lease,-audit_write,-audit_control,-setfcap,-mac_override,-mac_admin,-syslog,-wake_alarm,-block_suspend,-audit_read,-cap_38,-cap_39,-cap_40' ./testrunner.pl -f pretty -j 4 --rerun | |
- name: collect logs | |
if: always() | |
run: cat /tmp/cass/*/conf/log/syslog |