msimerson/Mail-Toaster-6

View on GitHub
.gitlab-ci.yml

Summary

Maintainability
Test Coverage
image: auchida/freebsd:latest

# Instructions for creating your own test runner:
# https://github.com/msimerson/Mail-Toaster-6/wiki/Develop-CI-Testing/

# these get run before/after EVERY script / stage
# before_script:
# after_script

stages:
  - host_setup
  - dns
  - db
  - mailstore
  - mta
  - webmail
  - extras
  - test

host_setup:
  stage: host_setup
  timeout: 10 minutes
  script:
    - sh test/get_jail_ip.sh
    - echo "export TOASTER_HOSTNAME=`hostname`" >> mail-toaster.conf
    - echo "export TOASTER_MAIL_DOMAIN=`hostname`" >> mail-toaster.conf
    - pkg update && pkg install -y ca_root_nss
    - sh provision/host.sh
    - sh provision/base.sh
  tags:
    - freebsd
    - ssh

dns:
  stage: dns
  timeout: 5 minutes
  script:
    - sh provision/dns.sh
# enabling caching doubles gitlab runner builds (~30 to 60m)
    # - sh provision/bsd_cache.sh
  tags:
    - freebsd
    - ssh

db:
  stage: db
  timeout: 5 minutes
  script:
    - sh provision/mysql.sh
    - sh provision/redis.sh
    # - sh provision/geoip.sh
  tags:
    - freebsd
    - ssh

mailstore:
  stage: mailstore
  timeout: 15 minutes
  script:
    - sh provision/vpopmail.sh
    - sh provision/dovecot.sh
  tags:
    - freebsd
    - ssh

mta:
  stage: mta
  timeout: 15 minutes
  script:
    - sh provision/clamav.sh
    - sh provision/dcc.sh
    - sh provision/rspamd.sh
    - sh provision/haraka.sh
  tags:
    - freebsd
    - ssh

webmail:
  stage: webmail
  timeout: 15 minutes
  script:
    - sh provision/haproxy.sh
    - sh provision/webmail.sh
    - sh provision/roundcube.sh
    - sh provision/snappymail.sh
    # - sh provision/squirrelmail.sh
  tags:
    - freebsd
    - ssh

extras:
  stage: extras
  timeout: 10 minutes
  script:
    - sh provision/spamassassin.sh
#   - sh provision/elasticsearch.sh
  tags:
    - freebsd
    - ssh
  allow_failure: true

test:
  stage: test
  timeout: 5 minutes
  script:
    - sh provision/mailtest.sh
  tags:
    - freebsd
    - ssh
  allow_failure: true