|
|
@@ -1,92 +1,76 @@ |
|
|
|
--- |
|
|
|
workspace: |
|
|
|
base: /rspamd |
|
|
|
|
|
|
|
pipeline: |
|
|
|
|
|
|
|
build: |
|
|
|
image: gcc:5 |
|
|
|
# https://github.com/rspamd/rspamd-build-docker/blob/master/ubuntu-build/Dockerfile |
|
|
|
image: rspamd/ci-ubuntu-build |
|
|
|
group: build |
|
|
|
commands: |
|
|
|
- pwd |
|
|
|
- set -e |
|
|
|
- apt-get update -qq |
|
|
|
- apt-get install -qq cmake libevent-dev libglib2.0-dev libicu-dev libluajit-5.1-dev libmagic-dev libsqlite3-dev libssl-dev ragel libunwind-dev libunwind8 |
|
|
|
- umask 0000 |
|
|
|
- mkdir /rspamd/build ; mkdir /rspamd/install ; cd /rspamd/build |
|
|
|
- cmake /rspamd/src/github.com/rspamd/rspamd/ -DDBDIR=/nana -DENABLE_COVERAGE=ON -DENABLE_LIBUNWIND=ON -DCMAKE_INSTALL_PREFIX=/rspamd/install |
|
|
|
- make install -j`nproc` |
|
|
|
- make rspamd-test -j`nproc` |
|
|
|
- mkdir /rspamd/build /rspamd/install |
|
|
|
- cd /rspamd/build |
|
|
|
- cmake $CI_WORKSPACE -DENABLE_COVERAGE=ON -DENABLE_LIBUNWIND=ON -DCMAKE_INSTALL_PREFIX=/rspamd/install -DCMAKE_RULE_MESSAGES=OFF |
|
|
|
- ncpu=$(getconf _NPROCESSORS_ONLN) |
|
|
|
- make -j $ncpu install |
|
|
|
- make -j $ncpu rspamd-test |
|
|
|
|
|
|
|
eslint: |
|
|
|
image: node:latest |
|
|
|
image: node:10-alpine |
|
|
|
group: build |
|
|
|
commands: |
|
|
|
- npm install |
|
|
|
- ./node_modules/.bin/eslint -v && ./node_modules/.bin/eslint ./ |
|
|
|
- ./node_modules/.bin/eslint -v |
|
|
|
- ./node_modules/.bin/eslint ./ |
|
|
|
|
|
|
|
rspamd-test: |
|
|
|
image: gcc:5 |
|
|
|
# https://github.com/rspamd/rspamd-build-docker/blob/master/ubuntu-test/Dockerfile |
|
|
|
image: rspamd/ci-ubuntu-test |
|
|
|
group: tests |
|
|
|
commands: |
|
|
|
# rspamd-test and functional test both use luacov.stats.out file and should be started from |
|
|
|
# different directories (if started in parallel) |
|
|
|
- cd /rspamd/build/test |
|
|
|
- set +e |
|
|
|
- ./rspamd-test -p /rspamd/lua; EXIT_CODE=$? |
|
|
|
- set -e |
|
|
|
- apt-get update -qq |
|
|
|
- apt-get install -qq cmake libevent-dev libglib2.0-dev libicu-dev libluajit-5.1-dev libmagic-dev libsqlite3-dev libssl-dev ragel libunwind-dev libunwind8 luarocks |
|
|
|
- apt-get install -qq python-pip python-dev |
|
|
|
- pip install --upgrade setuptools |
|
|
|
- pip install --upgrade pyOpenSSL |
|
|
|
- pip install --upgrade certifi |
|
|
|
- pip install --upgrade ipaddress |
|
|
|
- pip install --upgrade urllib3 |
|
|
|
- pip install --upgrade enum34 |
|
|
|
- pip install --upgrade cpp-coveralls requests cryptography |
|
|
|
- luarocks install luacov |
|
|
|
- luarocks install luacov-coveralls |
|
|
|
|
|
|
|
- cd /rspamd/build |
|
|
|
- set +e; test/rspamd-test -p /rspamd/lua |
|
|
|
- luacov-coveralls -o unit_test_lua.json --dryrun |
|
|
|
- coveralls --dump coverage.rspamd-test.dump |
|
|
|
- luacov-coveralls -o /rspamd/build/unit_test_lua.json --dryrun |
|
|
|
# coveralls dosn't support layout when object files are located outside git repo root |
|
|
|
# add hack to disable searching for git |
|
|
|
- ln -s /bin/true /usr/local/bin/git |
|
|
|
- coveralls --dump /rspamd/build/coverage.rspamd-test.dump |
|
|
|
- exit $EXIT_CODE |
|
|
|
|
|
|
|
functional: |
|
|
|
image: gcc:5 |
|
|
|
# https://github.com/rspamd/rspamd-build-docker/blob/master/ubuntu-test-func/Dockerfile |
|
|
|
image: rspamd/ci-ubuntu-test-func |
|
|
|
group: tests |
|
|
|
commands: |
|
|
|
- echo 'deb http://repo.yandex.ru/clickhouse/deb/stable/ main/' | tee /etc/apt/sources.list.d/clickhouse.list |
|
|
|
- apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 # optional, clickhouse key |
|
|
|
- apt-get update -qq || true |
|
|
|
- apt-get install -qq libluajit-5.1-dev libpcre3-dev luarocks opendkim-tools python-pip redis-server libunwind8 libglib2.0-dev libicu-dev libevent-dev python-dev |
|
|
|
- apt-get install -qq clickhouse-server |
|
|
|
- apt-get install -qq python-pip python-dev |
|
|
|
- pip install demjson psutil robotframework http |
|
|
|
- pip install --upgrade setuptools |
|
|
|
- pip install --upgrade pyOpenSSL |
|
|
|
- pip install --upgrade certifi |
|
|
|
- pip install --upgrade ipaddress |
|
|
|
- pip install --upgrade urllib3 |
|
|
|
- pip install --upgrade enum34 |
|
|
|
- pip install --upgrade cpp-coveralls requests cryptography |
|
|
|
|
|
|
|
- luarocks install luacheck |
|
|
|
- luarocks install luacov |
|
|
|
- luarocks install luacov-coveralls |
|
|
|
|
|
|
|
- cd /rspamd/build |
|
|
|
- umask 0000 |
|
|
|
- set +e; RSPAMD_INSTALLROOT=/rspamd/install robot -x xunit.xml --exclude isbroken /rspamd/src/github.com/rspamd/rspamd/test/functional/cases; export RETURN_CODE=$? |
|
|
|
- cat log.html |
|
|
|
- set +e |
|
|
|
- RSPAMD_INSTALLROOT=/rspamd/install robot --xunit xunit.xml --exclude isbroken $CI_WORKSPACE/test/functional/cases; EXIT_CODE=$? |
|
|
|
- set -e |
|
|
|
# coveralls will not find git repo anyway, see above |
|
|
|
- ln -s /bin/true /usr/local/bin/git |
|
|
|
- coveralls --dump coverage.functional.dump |
|
|
|
- exit $RETURN_CODE |
|
|
|
- exit $EXIT_CODE |
|
|
|
|
|
|
|
send-coverage: |
|
|
|
image: gcc:5 |
|
|
|
image: rspamd/ci-ubuntu-test |
|
|
|
secrets: [ coveralls_repo_token ] |
|
|
|
commands: | |
|
|
|
[ ! $DRONE_COMMIT_BRANCH = 'master' ] && exit 0 |
|
|
|
apt-get update -qq || true |
|
|
|
apt-get install -qq python-pip python-dev |
|
|
|
pip install --upgrade setuptools |
|
|
|
pip install --upgrade pyOpenSSL |
|
|
|
pip install cpp-coveralls requests cryptography |
|
|
|
cd /rspamd/build |
|
|
|
[ ! -z $COVERALLS_REPO_TOKEN ] && /rspamd/src/github.com/rspamd/rspamd/test/functional/util/merge_coveralls.py --input coverage.functional.dump coverage.rspamd-test.dump unit_test_lua.json lua_coverage_report.json --output out.josn --token=$COVERALLS_REPO_TOKEN |
|
|
|
commands: |
|
|
|
- cd /rspamd/build |
|
|
|
- $CI_WORKSPACE/test/functional/util/merge_coveralls.py --input coverage.functional.dump coverage.rspamd-test.dump unit_test_lua.json lua_coverage_report.json --output out.josn --token=$COVERALLS_REPO_TOKEN |
|
|
|
when: |
|
|
|
branch: master |
|
|
|
# don't send coverage report for pull request |
|
|
|
event: [push, tag] |
|
|
|
|
|
|
|
send-test-log: |
|
|
|
image: drillster/drone-email |
|
|
|
from: noreply@rspamd.com |
|
|
|
attachment: /rspamd/build/log.html |
|
|
|
secrets: [email_host, email_username, email_password] |
|
|
|
when: |
|
|
|
status: failure |