mirror of https://github.com/rspamd/rspamd.git
Rapid spam filtering system
https://rspamd.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
567 lines
17 KiB
567 lines
17 KiB
---
|
|
{
|
|
"depends_on": [ ],
|
|
"kind": "pipeline",
|
|
"name": "default-amd64",
|
|
"platform": {
|
|
"arch": "amd64",
|
|
"os": "linux"
|
|
},
|
|
"steps": [
|
|
{
|
|
"commands": [
|
|
"install -d -o nobody -g nogroup /rspamd/build /rspamd/install /rspamd/fedora/build /rspamd/fedora/install"
|
|
],
|
|
"image": "ubuntu:22.04",
|
|
"name": "prepare",
|
|
"pull": "if-not-exists",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commands": [
|
|
"test \"$(id -un)\" = nobody",
|
|
"cd /rspamd/build",
|
|
"cmake -DCMAKE_INSTALL_PREFIX=/rspamd/install -DCMAKE_RULE_MESSAGES=OFF -DCMAKE_VERBOSE_MAKEFILE=ON -DENABLE_COVERAGE=ON -DENABLE_LIBUNWIND=ON -DENABLE_HYPERSCAN=ON -GNinja $DRONE_WORKSPACE\n",
|
|
"ncpu=$(getconf _NPROCESSORS_ONLN)",
|
|
"ninja -j $ncpu install",
|
|
"ninja -j $ncpu rspamd-test",
|
|
"ninja -j $ncpu rspamd-test-cxx"
|
|
],
|
|
"depends_on": [
|
|
"prepare"
|
|
],
|
|
"image": "rspamd/ci:ubuntu-build",
|
|
"name": "build",
|
|
"pull": "always",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commands": [
|
|
"test \"$(id -un)\" = nobody",
|
|
"cd /rspamd/fedora/build",
|
|
"export LDFLAGS='-fuse-ld=lld'",
|
|
"export ASAN_OPTIONS=detect_leaks=0",
|
|
"cmake -DCMAKE_INSTALL_PREFIX=/rspamd/fedora/install -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_RULE_MESSAGES=OFF -DCMAKE_VERBOSE_MAKEFILE=ON -DENABLE_CLANG_PLUGIN=ON -DENABLE_FULL_DEBUG=ON -DENABLE_HYPERSCAN=ON -DSANITIZE=address $DRONE_WORKSPACE\n",
|
|
"ncpu=$(getconf _NPROCESSORS_ONLN)",
|
|
"make -j $ncpu install",
|
|
"make -j $ncpu rspamd-test",
|
|
"make -j $ncpu rspamd-test-cxx"
|
|
],
|
|
"depends_on": [
|
|
"prepare"
|
|
],
|
|
"image": "rspamd/ci:fedora-build",
|
|
"name": "build-clang",
|
|
"pull": "always",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commands": [
|
|
"test \"$(id -un)\" = nobody",
|
|
"ulimit -c unlimited",
|
|
"cd /rspamd/build/test",
|
|
"set +e",
|
|
"env RSPAMD_LUA_EXPENSIVE_TESTS=1 ./rspamd-test -p /rspamd/lua; EXIT_CODE=$?",
|
|
"set -e",
|
|
"if [ $EXIT_CODE -gt 128 ]; then gdb --batch -ex 'thread apply all bt full' -c /var/tmp/*.rspamd-test.core ./rspamd-test; exit $EXIT_CODE; fi; if [ $EXIT_CODE -ne 0 ]; then exit $EXIT_CODE; fi\n",
|
|
"luacov-coveralls -o /rspamd/build/unit_test_lua.json --dryrun",
|
|
"set +e",
|
|
"./rspamd-test-cxx -s; EXIT_CODE=$?",
|
|
"set -e",
|
|
"if [ $EXIT_CODE -gt 128 ]; then gdb --batch -ex 'thread apply all bt full' -c /var/tmp/*.rspamd-test-cxx.core ./rspamd-test-cxx; exit $EXIT_CODE; fi\n",
|
|
"exit $EXIT_CODE"
|
|
],
|
|
"depends_on": [
|
|
"build"
|
|
],
|
|
"image": "rspamd/ci:ubuntu-test",
|
|
"name": "rspamd-test",
|
|
"pull": "always",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commands": [
|
|
"test \"$(id -un)\" = nobody",
|
|
"ulimit -c 2097152",
|
|
"ulimit -s unlimited",
|
|
"export ASAN_OPTIONS=\"detect_leaks=0:print_stacktrace=1:disable_coredump=0\"",
|
|
"export UBSAN_OPTIONS=\"print_stacktrace=1:print_summary=0:log_path=/tmp/ubsan\"",
|
|
"cd /rspamd/fedora/build/test",
|
|
"set +e",
|
|
"env RSPAMD_LUA_EXPENSIVE_TESTS=1 ./rspamd-test -p /rspamd/lua; EXIT_CODE=$?",
|
|
"set -e",
|
|
"if [ $EXIT_CODE -gt 128 ]; then gdb --batch -ex 'bt' -c /var/tmp/*.rspamd-test.core ./rspamd-test; fi\n",
|
|
"set +e",
|
|
"./rspamd-test-cxx -s; EXIT_CODE=$?",
|
|
"set -e",
|
|
"if [ $EXIT_CODE -gt 128 ]; then gdb --batch -ex 'thread apply all bt full' -c /var/tmp/*.rspamd-test-cxx.core ./rspamd-test-cxx; exit $EXIT_CODE; fi\n",
|
|
"cat /tmp/ubsan.* || true",
|
|
"exit $EXIT_CODE"
|
|
],
|
|
"depends_on": [
|
|
"build-clang"
|
|
],
|
|
"image": "rspamd/ci:fedora-test",
|
|
"name": "test-fedora-clang",
|
|
"pull": "always",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commands": [
|
|
"cd /rspamd/build",
|
|
"ulimit -c unlimited",
|
|
"ulimit -s unlimited",
|
|
"umask 0000",
|
|
"set +e",
|
|
"RSPAMD_INSTALLROOT=/rspamd/install robot --removekeywords wuks --exclude isbroken $DRONE_WORKSPACE/test/functional/cases; EXIT_CODE=$?",
|
|
"set -e",
|
|
"if [ -n \"$HTTP_PUT_AUTH\" ]; then $DRONE_WORKSPACE/test/tools/http_put.py log.html report.html https://$DRONE_SYSTEM_HOSTNAME/testlogs/$DRONE_REPO/${DRONE_BUILD_NUMBER}-amd64/; fi\n",
|
|
"core_files=$(find /var/tmp/ -name '*.core')",
|
|
"for core in $core_files; do exe=$(gdb --batch -ex 'info proc mappings' -c $core | tail -1 | awk '{print $5}'); gdb --batch -ex 'bt' -c $core $exe; echo '---'; done\n",
|
|
"exit $EXIT_CODE"
|
|
],
|
|
"depends_on": [
|
|
"build"
|
|
],
|
|
"environment": {
|
|
"HTTP_PUT_AUTH": {
|
|
"from_secret": "http_put_auth"
|
|
}
|
|
},
|
|
"image": "rspamd/ci:ubuntu-test-func",
|
|
"name": "functional",
|
|
"pull": "always",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commands": [
|
|
"cd /rspamd/build",
|
|
"$DRONE_WORKSPACE/test/tools/gcov_coveralls.py --exclude test --prefix /rspamd/build --prefix $DRONE_WORKSPACE --out coverage.c.json",
|
|
"luacov-coveralls -o coverage.functional.lua.json --dryrun",
|
|
"$DRONE_WORKSPACE/test/tools/merge_coveralls.py --parallel --root $DRONE_WORKSPACE --input coverage.c.json unit_test_lua.json coverage.functional.lua.json --token=$COVERALLS_REPO_TOKEN"
|
|
],
|
|
"depends_on": [
|
|
"functional",
|
|
"rspamd-test"
|
|
],
|
|
"environment": {
|
|
"COVERALLS_REPO_TOKEN": {
|
|
"from_secret": "coveralls_repo_token"
|
|
}
|
|
},
|
|
"image": "rspamd/ci:ubuntu-test",
|
|
"name": "send-coverage",
|
|
"pull": "if-not-exists",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
],
|
|
"when": {
|
|
"branch": [
|
|
"master"
|
|
],
|
|
"event": [
|
|
"push",
|
|
"tag"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"trigger": {
|
|
"event": [
|
|
"push",
|
|
"tag",
|
|
"custom",
|
|
"pull_request"
|
|
]
|
|
},
|
|
"type": "docker",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"temp": { }
|
|
}
|
|
]
|
|
}
|
|
---
|
|
{
|
|
"depends_on": [ ],
|
|
"kind": "pipeline",
|
|
"name": "default-arm64",
|
|
"platform": {
|
|
"arch": "arm64",
|
|
"os": "linux"
|
|
},
|
|
"steps": [
|
|
{
|
|
"commands": [
|
|
"install -d -o nobody -g nogroup /rspamd/build /rspamd/install /rspamd/fedora/build /rspamd/fedora/install"
|
|
],
|
|
"image": "ubuntu:22.04",
|
|
"name": "prepare",
|
|
"pull": "if-not-exists",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commands": [
|
|
"test \"$(id -un)\" = nobody",
|
|
"cd /rspamd/build",
|
|
"cmake -DCMAKE_INSTALL_PREFIX=/rspamd/install -DCMAKE_RULE_MESSAGES=OFF -DCMAKE_VERBOSE_MAKEFILE=ON -DENABLE_COVERAGE=ON -DENABLE_LIBUNWIND=ON -DENABLE_HYPERSCAN=ON -DHYPERSCAN_ROOT_DIR=/vectorscan -GNinja $DRONE_WORKSPACE\n",
|
|
"ncpu=$(getconf _NPROCESSORS_ONLN)",
|
|
"ninja -j $ncpu install",
|
|
"ninja -j $ncpu rspamd-test",
|
|
"ninja -j $ncpu rspamd-test-cxx"
|
|
],
|
|
"depends_on": [
|
|
"prepare"
|
|
],
|
|
"image": "rspamd/ci:ubuntu-build",
|
|
"name": "build",
|
|
"pull": "always",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commands": [
|
|
"test \"$(id -un)\" = nobody",
|
|
"cd /rspamd/fedora/build",
|
|
"export LDFLAGS='-fuse-ld=lld'",
|
|
"export ASAN_OPTIONS=detect_leaks=0",
|
|
"cmake -DCMAKE_INSTALL_PREFIX=/rspamd/fedora/install -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_RULE_MESSAGES=OFF -DCMAKE_VERBOSE_MAKEFILE=ON -DENABLE_CLANG_PLUGIN=ON -DENABLE_FULL_DEBUG=ON -DENABLE_HYPERSCAN=ON -DHYPERSCAN_ROOT_DIR=/vectorscan -DSANITIZE=address $DRONE_WORKSPACE\n",
|
|
"ncpu=$(getconf _NPROCESSORS_ONLN)",
|
|
"make -j $ncpu install",
|
|
"make -j $ncpu rspamd-test",
|
|
"make -j $ncpu rspamd-test-cxx"
|
|
],
|
|
"depends_on": [
|
|
"prepare"
|
|
],
|
|
"image": "rspamd/ci:fedora-build",
|
|
"name": "build-clang",
|
|
"pull": "always",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commands": [
|
|
"test \"$(id -un)\" = nobody",
|
|
"ulimit -c unlimited",
|
|
"cd /rspamd/build/test",
|
|
"set +e",
|
|
"env RSPAMD_LUA_EXPENSIVE_TESTS=1 ./rspamd-test -p /rspamd/lua; EXIT_CODE=$?",
|
|
"set -e",
|
|
"if [ $EXIT_CODE -gt 128 ]; then gdb --batch -ex 'thread apply all bt full' -c /var/tmp/*.rspamd-test.core ./rspamd-test; exit $EXIT_CODE; fi; if [ $EXIT_CODE -ne 0 ]; then exit $EXIT_CODE; fi\n",
|
|
"luacov-coveralls -o /rspamd/build/unit_test_lua.json --dryrun",
|
|
"set +e",
|
|
"./rspamd-test-cxx -s; EXIT_CODE=$?",
|
|
"set -e",
|
|
"if [ $EXIT_CODE -gt 128 ]; then gdb --batch -ex 'thread apply all bt full' -c /var/tmp/*.rspamd-test-cxx.core ./rspamd-test-cxx; exit $EXIT_CODE; fi\n",
|
|
"exit $EXIT_CODE"
|
|
],
|
|
"depends_on": [
|
|
"build"
|
|
],
|
|
"image": "rspamd/ci:ubuntu-test",
|
|
"name": "rspamd-test",
|
|
"pull": "always",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commands": [
|
|
"test \"$(id -un)\" = nobody",
|
|
"ulimit -c 2097152",
|
|
"ulimit -s unlimited",
|
|
"export ASAN_OPTIONS=\"detect_leaks=0:print_stacktrace=1:disable_coredump=0\"",
|
|
"export UBSAN_OPTIONS=\"print_stacktrace=1:print_summary=0:log_path=/tmp/ubsan\"",
|
|
"cd /rspamd/fedora/build/test",
|
|
"set +e",
|
|
"env RSPAMD_LUA_EXPENSIVE_TESTS=1 ./rspamd-test -p /rspamd/lua; EXIT_CODE=$?",
|
|
"set -e",
|
|
"if [ $EXIT_CODE -gt 128 ]; then gdb --batch -ex 'bt' -c /var/tmp/*.rspamd-test.core ./rspamd-test; fi\n",
|
|
"set +e",
|
|
"./rspamd-test-cxx -s; EXIT_CODE=$?",
|
|
"set -e",
|
|
"if [ $EXIT_CODE -gt 128 ]; then gdb --batch -ex 'thread apply all bt full' -c /var/tmp/*.rspamd-test-cxx.core ./rspamd-test-cxx; exit $EXIT_CODE; fi\n",
|
|
"cat /tmp/ubsan.* || true",
|
|
"exit $EXIT_CODE"
|
|
],
|
|
"depends_on": [
|
|
"build-clang"
|
|
],
|
|
"image": "rspamd/ci:fedora-test",
|
|
"name": "test-fedora-clang",
|
|
"pull": "always",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commands": [
|
|
"cd /rspamd/build",
|
|
"ulimit -c unlimited",
|
|
"ulimit -s unlimited",
|
|
"umask 0000",
|
|
"set +e",
|
|
"RSPAMD_INSTALLROOT=/rspamd/install robot --removekeywords wuks --exclude isbroken $DRONE_WORKSPACE/test/functional/cases; EXIT_CODE=$?",
|
|
"set -e",
|
|
"if [ -n \"$HTTP_PUT_AUTH\" ]; then $DRONE_WORKSPACE/test/tools/http_put.py log.html report.html https://$DRONE_SYSTEM_HOSTNAME/testlogs/$DRONE_REPO/${DRONE_BUILD_NUMBER}-arm64/; fi\n",
|
|
"core_files=$(find /var/tmp/ -name '*.core')",
|
|
"for core in $core_files; do exe=$(gdb --batch -ex 'info proc mappings' -c $core | tail -1 | awk '{print $5}'); gdb --batch -ex 'bt' -c $core $exe; echo '---'; done\n",
|
|
"exit $EXIT_CODE"
|
|
],
|
|
"depends_on": [
|
|
"build"
|
|
],
|
|
"environment": {
|
|
"HTTP_PUT_AUTH": {
|
|
"from_secret": "http_put_auth"
|
|
}
|
|
},
|
|
"image": "rspamd/ci:ubuntu-test-func",
|
|
"name": "functional",
|
|
"pull": "always",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commands": [
|
|
"cd /rspamd/build",
|
|
"$DRONE_WORKSPACE/test/tools/gcov_coveralls.py --exclude test --prefix /rspamd/build --prefix $DRONE_WORKSPACE --out coverage.c.json",
|
|
"luacov-coveralls -o coverage.functional.lua.json --dryrun",
|
|
"$DRONE_WORKSPACE/test/tools/merge_coveralls.py --parallel --root $DRONE_WORKSPACE --input coverage.c.json unit_test_lua.json coverage.functional.lua.json --token=$COVERALLS_REPO_TOKEN"
|
|
],
|
|
"depends_on": [
|
|
"functional",
|
|
"rspamd-test"
|
|
],
|
|
"environment": {
|
|
"COVERALLS_REPO_TOKEN": {
|
|
"from_secret": "coveralls_repo_token"
|
|
}
|
|
},
|
|
"image": "rspamd/ci:ubuntu-test",
|
|
"name": "send-coverage",
|
|
"pull": "if-not-exists",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"path": "/rspamd"
|
|
}
|
|
],
|
|
"when": {
|
|
"branch": [
|
|
"master"
|
|
],
|
|
"event": [
|
|
"push",
|
|
"tag"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"trigger": {
|
|
"event": [
|
|
"push",
|
|
"tag",
|
|
"custom",
|
|
"pull_request"
|
|
]
|
|
},
|
|
"type": "docker",
|
|
"volumes": [
|
|
{
|
|
"name": "rspamd",
|
|
"temp": { }
|
|
}
|
|
]
|
|
}
|
|
---
|
|
{
|
|
"depends_on": [
|
|
"default-amd64",
|
|
"default-arm64"
|
|
],
|
|
"kind": "pipeline",
|
|
"name": "close_coveralls",
|
|
"steps": [
|
|
{
|
|
"commands": [
|
|
"$DRONE_WORKSPACE/test/tools/merge_coveralls.py --parallel-close --token=$COVERALLS_REPO_TOKEN"
|
|
],
|
|
"environment": {
|
|
"COVERALLS_REPO_TOKEN": {
|
|
"from_secret": "coveralls_repo_token"
|
|
}
|
|
},
|
|
"image": "rspamd/ci:ubuntu-test-func",
|
|
"name": "close_coveralls",
|
|
"pull": "always"
|
|
}
|
|
],
|
|
"trigger": {
|
|
"branch": [
|
|
"master"
|
|
],
|
|
"event": [
|
|
"push",
|
|
"tag"
|
|
],
|
|
"status": [
|
|
"success",
|
|
"failure"
|
|
]
|
|
},
|
|
"type": "docker"
|
|
}
|
|
---
|
|
{
|
|
"kind": "pipeline",
|
|
"name": "default-noarch",
|
|
"steps": [
|
|
{
|
|
"commands": [
|
|
"tidyall --version",
|
|
"perltidy --version | head -1",
|
|
"tidyall --all --check-only --no-cache --data-dir /tmp/tidyall"
|
|
],
|
|
"failure": "ignore",
|
|
"image": "rspamd/ci:perl-tidyall",
|
|
"name": "perl-tidyall",
|
|
"pull": "if-not-exists"
|
|
},
|
|
{
|
|
"commands": [
|
|
"npm install",
|
|
"./node_modules/.bin/eslint -v",
|
|
"./node_modules/.bin/eslint ./",
|
|
"./node_modules/.bin/stylelint -v",
|
|
"npm show stylelint-config-standard version",
|
|
"./node_modules/.bin/stylelint ./**/*.css ./**/*.html ./**/*.js"
|
|
],
|
|
"failure": "ignore",
|
|
"image": "node:18-alpine",
|
|
"name": "eslint",
|
|
"pull": "if-not-exists"
|
|
},
|
|
{
|
|
"commands": [
|
|
"luacheck -q --no-color ."
|
|
],
|
|
"image": "pipelinecomponents/luacheck",
|
|
"name": "luacheck",
|
|
"pull": "if-not-exists"
|
|
}
|
|
],
|
|
"trigger": {
|
|
"event": [
|
|
"push",
|
|
"tag",
|
|
"custom",
|
|
"pull_request"
|
|
]
|
|
},
|
|
"type": "docker"
|
|
}
|
|
---
|
|
{
|
|
"depends_on": [
|
|
"default-amd64",
|
|
"default-arm64",
|
|
"default-noarch"
|
|
],
|
|
"kind": "pipeline",
|
|
"name": "notify",
|
|
"steps": [
|
|
{
|
|
"image": "drillster/drone-email",
|
|
"name": "notify",
|
|
"pull": "if-not-exists",
|
|
"settings": {
|
|
"from": "noreply@rspamd.com",
|
|
"host": {
|
|
"from_secret": "email_host"
|
|
},
|
|
"password": {
|
|
"from_secret": "email_password"
|
|
},
|
|
"username": {
|
|
"from_secret": "email_username"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"trigger": {
|
|
"event": [
|
|
"push",
|
|
"tag",
|
|
"custom"
|
|
],
|
|
"status": [
|
|
"failure"
|
|
]
|
|
},
|
|
"type": "docker"
|
|
}
|
|
---
|
|
{
|
|
"hmac": "6c89d1423ccbddbfac9e2b67f24192018670209a293cfee308880a16a2f2b372",
|
|
"kind": "signature"
|
|
}
|
|
...
|