+++ /dev/null
-references:
- - &defaults
- docker:
- - image: circleci/ruby:latest
-
- - &workspace_root
- ~/
-
- - &capture_coverage_data
- run:
- name: Capturing coverage data
- command: |
- set -e
- sudo apt-get install -qq python-pip
- sudo pip install cpp-coveralls
-
- # further, these files will be saved in cache and used in "send-coverage" step
- # see "merge_and_upload_coverage_data" and "save_cache" records
- coveralls --dump coverage.${CIRCLE_JOB}.dump
-
- - &merge_and_upload_coverage_data
- run:
- name: Merging and uploading coverage data
- command: |
- set -e
- if [ -f ~/project/coverage.rspamd-test.dump ] && [ -f ~/project/coverage.functional.dump ]; then
- sudo apt-get install -qq python-pip python-dev
- sudo pip install --upgrade setuptools
- sudo pip install --upgrade pyOpenSSL
- sudo pip install cpp-coveralls requests cryptography
-
- cd ~/project
- if [ ! -z $COVERALLS_REPO_TOKEN ]; then
- # Merge Lua coverage (collected into lua_coverage_report.json) and with C-coverage
- # (in coverage.rspamd-test.dump, coverage.functional.dump, see &capture_coverage_data)
- # and finally upload it into coveralls.io
- test/tools/merge_coveralls.py --input coverage.functional.dump coverage.rspamd-test.dump lua_coverage_report.json unit_test_lua.json --output out.josn --token=${COVERALLS_REPO_TOKEN}
- fi
- fi
-
-version: 2
-jobs:
- build:
- <<: *defaults
- steps:
- - checkout
-
- - run: sudo apt-get update -qq || true
- - run: sudo 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
-
- - run: mkdir ../build ; mkdir ../install ; cd ../build
- # this weird peice is needed to properly collect coverage
- # rspamd works under "nobody" user and will not be able to dump
- # the coverage if directories have restrictive permissions
- - run: umask 0000
- - run: cmake ../project -DDBDIR=/nana -DENABLE_COVERAGE=ON -DENABLE_LIBUNWIND=ON -DCMAKE_INSTALL_PREFIX=../install
-
- - run: make install -j`nproc`
-
- - persist_to_workspace:
- root: *workspace_root
- paths:
- - project
- - build
- - install
-
- rspamd-test:
- <<: *defaults
- steps:
- - attach_workspace:
- at: *workspace_root
-
- - run: sudo apt-get update -qq || true
- - run: sudo 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
- - run: sudo luarocks install luacheck
- - run: sudo luarocks install luacov
- - run: sudo luarocks install luacov-coveralls
-
- - run: cd ../build
- - run: make rspamd-test -j`nproc`
- - run: set +e; test/rspamd-test -p /rspamd/lua; echo "export RETURN_CODE=$?" >> $BASH_ENV
- - run: luacov-coveralls -o unit_test_lua.json --dryrun
-
- - *capture_coverage_data
-
- # Share coverage data between jobs
- - save_cache:
- key: coverage-rspamd-test-{{ .Environment.CIRCLE_WORKFLOW_ID }}
- paths:
- - coverage.rspamd-test.dump
- - unit_test_lua.json
-
- - run: (exit $RETURN_CODE)
-
- functional:
- <<: *defaults
- steps:
- - attach_workspace:
- at: *workspace_root
-
- - run: echo 'deb http://repo.yandex.ru/clickhouse/deb/stable/ main/' | sudo tee /etc/apt/sources.list.d/clickhouse.list
- - run: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 # optional, clickhouse key
-
- - run: sudo apt-get update -qq || true
- - run: sudo 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
- - run: sudo apt-get install clickhouse-server
-
- - run: sudo pip install demjson psutil robotframework requests http
- - run: sudo luarocks install luacheck
- - run: sudo luarocks install luacov
- - run: sudo luarocks install luacov-coveralls
-
- - run: cd ../build
- # see coverage notice in "build" stage
- - run: set +e; RSPAMD_INSTALLROOT=../install sudo -E bash -c "umask 0000; robot -x xunit.xml --exclude isbroken ../project/test/functional/cases"; echo "export RETURN_CODE=$?" >> $BASH_ENV
- # luacov-coveralls reads luacov.stats.out generated by functional tests
- # (see collect_lua_coverage() in test/functional/lib/rspamd.py)
- # and writes json report for coveralls.io
- - run: luacov-coveralls -o lua_coverage_report.json --dryrun
-
- - *capture_coverage_data
-
- # Share coverage data between jobs
- - save_cache:
- key: coverage-functional-{{ .Environment.CIRCLE_WORKFLOW_ID }}
- paths:
- - coverage.functional.dump
- - lua_coverage_report.json
-
- - store_artifacts:
- path: output.xml
- - store_artifacts:
- path: log.html
- - store_artifacts:
- path: report.html
-
- - run: mkdir -p test-results; mv xunit.xml test-results
- - store_test_results:
- path: test-results
-
- - run: (exit $RETURN_CODE)
-
- eslint:
- docker:
- - image: circleci/node:latest
- steps:
- - checkout
- - restore_cache:
- keys:
- - v1-dependencies-{{ checksum "package.json" }}
- # fallback to using the latest cache if no exact match is found
- - v1-dependencies-
- - run: npm install
- - save_cache:
- paths:
- - node_modules
- key: v1-dependencies-{{ checksum "package.json" }}
- - run: ./node_modules/.bin/eslint -v && ./node_modules/.bin/eslint ./
-
- tidy:
- docker:
- - image: buildpack-deps:latest
- steps:
- - run:
- name: Exporting env vars
- command: |
- cat >> $BASH_ENV <<EOF
- export PATH=$PATH:$HOME/perl5/bin
- export PERL_CPANM_OPT=--local-lib=$HOME/perl5
- export PERL5LIB=$HOME/perl5/lib/perl5:$PERL5LIB
- EOF
- - checkout
-
- - restore_cache:
- key: v0-tidyall_dependencies
- - run:
- name: Installing cpanm
- command: 'curl -L https://cpanmin.us | perl - App::cpanminus'
- - run:
- name: Installing CPAN dependencies
- command: |
- cpanm --quiet --notest \
- Code::TidyAll \
- Code::TidyAll::Plugin::Test::Vars \
- Perl::Critic \
- Perl::Tidy \
- Pod::Tidy
- - save_cache:
- key: v0-tidyall_dependencies
- paths:
- - ~/perl5
- - run: tidyall -a --check-only
-
- send-coverage:
- <<: *defaults
- steps:
- - attach_workspace:
- at: *workspace_root
- - restore_cache:
- key: coverage-rspamd-test-{{ .Environment.CIRCLE_WORKFLOW_ID }}
- - restore_cache:
- key: coverage-functional-{{ .Environment.CIRCLE_WORKFLOW_ID }}
-
- - *merge_and_upload_coverage_data
-
- - store_artifacts:
- path: out.josn
-
-notify:
- webhooks:
- - url: https://coveralls.io/webhook?repo_token={{ .Environment.COVERALLS_REPO_TOKEN }}
-
-workflows:
- version: 2
- build-and-test:
- jobs:
- - build
- - eslint
- - tidy
- - rspamd-test:
- requires:
- - build
- - functional:
- requires:
- - build
- - send-coverage:
- requires:
- - rspamd-test
- - functional
+++ /dev/null
-e3cf50559597ac80329627c616a916919643cf11 0.2.7
-b216ff4770b9de131e3dca062bff54a2835735e5 0.3.0
-90c8a471ba4d4bdf474681c63f992b8ee6504d63 0.3.1
-90c8a471ba4d4bdf474681c63f992b8ee6504d63 0.3.1
-badcc2f4c3e5a8670fc18dd53e22054c7b09ea86 0.3.1
-f0785a849d9c6baec29b23a92ed25539ae460e4a 0.3.2
-f0785a849d9c6baec29b23a92ed25539ae460e4a 0.3.2
-67fb1957d490d5d4f97181a975b3071134f43485 0.3.2
-67fb1957d490d5d4f97181a975b3071134f43485 0.3.2
-7b83bc04fee5e7c5af8d7c168cd956c1d48b85ee 0.3.2
-7b83bc04fee5e7c5af8d7c168cd956c1d48b85ee rspamd.xml.sample
-b241596821d921cf096ed03c554b6b6095a34850 0.3.3
-b241596821d921cf096ed03c554b6b6095a34850 0.3.3
-15b7c5d49fe43e79dc3d9c0f08d0a9004d5c0f1e 0.3.3
-ed28e6c41f75772e0e0f7be0a331836989897080 0.3.7
-8ab8f0243363e8f34a6dbfbf61531f189fc5fb19 0.3.8
-2393776a7ec9a8806eb6c8cfd174664d5bb2aac0 0.3.9
-6c80adc8e9b724b192919ea7340ca94426b492da 0.3.10
-efd81f6e3ad6054a494dec4c2d07f44088e7ff3c 0.3.11
-391960a4b51893ea5354b71fb8954046286c55cd 0.3.12
-e20e33df7a4674035c9b177a66fc07115e9695ca 0.3.13
-e8e79f27ad01e8b0b949065053158818b2120c73 0.3.14
-c52f190b059201fac3a060106b6a02a27f797f2c 0.4.0
-c52f190b059201fac3a060106b6a02a27f797f2c 0.4.0
-f04885bd268e4915da297d731ba1b00f33ad44ef 0.4.0
-17edc13bc56a473c24bd6d38ce182b8a3b91b12a 0.4.1
-fc8a4134bfcc22cce1e7a0a24d27856a5549f17d 0.4.2
-44d02babaaea1c64f53eda0e7fef28a7b7c8fb95 0.4.3
-398802e77f9f9f9fe666fdac02a354d7b469af87 0.4.4
-f57a74a7a068fdbb3122448210cda9ea9fa863e1 0.4.5
-d2825fcdbb5275c9769fbdec3af582e31f6b47e7 0.4.6
-b0d4207e9a41e5291fa5deeacc8a1dcc264e6fab 0.4.7
-26ad7ecdd714c4c91ef9b25ecfd395a754c2a5b4 0.5.0
-de8b1598bc1d148bca39836c21c8c84ae83130b6 0.5.1
-7046404e2c1028013b2e40dc9a55c65842e53cef 0.5.2
-4ad023f896ce6ff7347a465931cb199bc8ba39b0 0.5.3
-bf9307c5d78bd9b06e9fcae008db959aad1e62d2 0.5.4
-4c41246d28b0c682f8646c27fa5e637fc4ccf11e 0.5.5
-4c41246d28b0c682f8646c27fa5e637fc4ccf11e 0.5.5
-0000000000000000000000000000000000000000 0.5.5
-0000000000000000000000000000000000000000 0.5.5
-88d62b224381382bb45b2123c5ee25b575cc1afc 0.5.5
-88d62b224381382bb45b2123c5ee25b575cc1afc 0.5.5
-44fecab72df681d170cd8ccae1842733844eddbc 0.5.5
-34ec644af33ca2040b6e24f5ceadd311b502618e 0.5.6
-e11d0fa6d58038a59ed5ed5cba04ec2b1089d61b 0.6.0
-fd359d2ef59b1c0e35ca6c1db7f0b4cb5cf7e9fd 0.6.1
-e34a90b92b248cca1b8cb03052084e5e441ec21d 0.6.2
-28685d33512977c42fdfb3000ee05a28f6097794 0.6.3
-7efe36ce9272d6c6c521041ec8c587ee79f7ba7e 0.6.4
-7efe36ce9272d6c6c521041ec8c587ee79f7ba7e 0.6.4
-0000000000000000000000000000000000000000 0.6.4
-0000000000000000000000000000000000000000 0.6.4
-93e5d880b3898e8531f5968c295fca4bec845d68 0.6.4
-d7ffd19265d09c7b5b13409a730a3a987ea36f26 0.6.5
-3d18c18889ffd933cbfde99ede231f8869c3b8d8 0.6.6
-f14508f80e52320521f09714389c08a8d966c085 0.6.7