--- { "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", "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", "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", "npm show @stylistic/eslint-plugin version", "./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": "4ca5db457ae3dab86f7e81d57f72268fae0bcf446dfaf91482032e6545736524", "kind": "signature" } ...