2019-08-15 04:19:55 +08:00
version : 2.1
2019-08-16 08:43:21 +08:00
2019-08-15 06:47:20 +08:00
# Reusable image / compiler definitions
2019-08-15 04:19:55 +08:00
executors :
gcc7 :
2019-07-05 05:58:45 +08:00
docker :
2019-08-15 04:19:55 +08:00
- image : gcc:7
2019-07-05 05:58:45 +08:00
environment :
2019-08-15 04:19:55 +08:00
CXX : g++
clang6 :
2019-02-26 03:38:06 +08:00
docker :
- image : ubuntu:18.04
environment :
CXX : clang++-6.0
2019-08-15 06:47:20 +08:00
# Reusable test commands (and initializer for clang 6)
2019-08-15 04:19:55 +08:00
commands :
init_clang6 :
steps :
2019-08-15 06:47:20 +08:00
- run : apt-get update -qq
2019-08-15 04:19:55 +08:00
- run : apt-get install -y clang build-essential git
make_test :
2019-07-05 05:58:45 +08:00
steps :
- checkout
2019-08-15 04:19:55 +08:00
- run : make
- run : make amalgamate
2020-01-16 08:49:11 +08:00
- run: ARCHFLAGS=-march=haswell make amalgamate # some users do this : https://github.com/lemire/simdjson/issues/444
2019-08-15 04:19:55 +08:00
- run : make test
- run : make checkperf
2020-01-16 08:49:11 +08:00
- run : make clean
- run : ARCHFLAGS=-march=haswell make test # this breaks runtime dispatch, but see https://github.com/lemire/simdjson/issues/444... this is a code robustness test
2020-01-28 00:25:23 +08:00
- run : make clean
- run : EXTRAFLAGS=-DSIMDJSON_NO_COMPUTED_GOTO=true make test # this should run tests with computed gotos disabled
2019-08-15 04:19:55 +08:00
cmake_test :
steps :
- run : apt-get update -qq
- run : apt-get install -y cmake
- checkout
2019-08-15 06:47:20 +08:00
- run : cmake $CMAKE_TEST_FLAGS
2019-08-15 04:19:55 +08:00
- run : make
- run : make test
2019-08-10 05:26:05 +08:00
2019-08-15 06:47:20 +08:00
jobs :
2019-11-23 04:51:46 +08:00
gcc-avx-unthreaded :
description : Build, run tests and check performance on GCC 7 and AVX 2 *without* threads
executor : gcc7
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_ENABLE_THREADS=OFF }
steps : [ cmake_test ]
gcc-avx-threaded :
description : Build, run tests and check performance on GCC 7 and AVX 2 with threads
executor : gcc7
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_ENABLE_THREADS=ON }
steps : [ cmake_test ]
clang-avx-unthreaded :
description : Build, run tests and check performance on Clang 6 and AVX 2 *without* threads
executor : clang6
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_ENABLE_THREADS=OFF }
steps : [ init_clang6, cmake_test ]
clang-avx-threaded :
description : Build, run tests and check performance on Clang 6 and AVX 2 with threads
executor : clang6
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_ENABLE_THREADS=ON }
steps : [ init_clang6, cmake_test ]
2019-08-15 06:47:20 +08:00
gcc-avx :
description : Build, run tests and check performance on GCC 7 and AVX 2
executor : gcc7
steps : [ make_test ]
gcc-avx-dynamic :
description : Build, run tests and check performance on GCC 7 and AVX 2 with a cmake dynamic build
executor : gcc7
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_BUILD_STATIC=OFF }
steps : [ cmake_test ]
gcc-avx-static :
description : Build, run tests and check performance on GCC 7 and AVX 2 with a cmake static build
executor : gcc7
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_BUILD_STATIC=ON }
steps : [ cmake_test ]
gcc-avx-sanitize :
description : Build, run tests and check performance on GCC 7 and AVX 2 with a cmake sanitize build
executor : gcc7
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_BUILD_STATIC=OFF -DSIMDJSON_SANITIZE=ON }
steps : [ cmake_test ]
gcc-sse :
description : Build, run tests and check performance on GCC 7 and SSE 4.2
executor : gcc7
environment : { ARCHFLAGS : -march=nehalem }
steps : [ make_test ]
gcc-sse-dynamic :
description : Build, run tests and check performance on GCC 7 and SSE 4.2 with a cmake dynamic build
executor : gcc7
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_BUILD_STATIC=OFF }
steps : [ cmake_test ]
gcc-sse-static :
description : Build, run tests and check performance on GCC 7 and SSE 4.2 with a cmake static build
executor : gcc7
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_BUILD_STATIC=ON }
steps : [ cmake_test ]
gcc-sse-sanitize :
description : Build, run tests and check performance on GCC 7 and SSE 4.2 with a cmake sanitize build
executor : gcc7
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_BUILD_STATIC=OFF -DSIMDJSON_SANITIZE=ON }
steps : [ cmake_test ]
clang-avx :
description : Build, run tests and check performance on clang 6 and AVX 2
executor : clang6
steps : [ init_clang6, make_test ]
clang-avx-dynamic :
description : Build, run tests and check performance on clang 6 and AVX 2 with a cmake dynamic build
executor : clang6
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_BUILD_STATIC=OFF }
steps : [ init_clang6, cmake_test ]
clang-avx-static :
description : Build, run tests and check performance on clang 6 and AVX 2 with a cmake static build
executor : clang6
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_BUILD_STATIC=ON }
steps : [ init_clang6, cmake_test ]
clang-avx-sanitize :
description : Build, run tests and check performance on clang 6 and AVX 2 with a cmake sanitize build
executor : clang6
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_BUILD_STATIC=OFF -DSIMDJSON_SANITIZE=ON }
steps : [ init_clang6, cmake_test ]
clang-sse :
2019-11-23 04:51:46 +08:00
description : Build, run tests and check performance on Clang 6 and SSE 4.2
2019-08-15 06:47:20 +08:00
executor : clang6
environment : { ARCHFLAGS : -march=nehalem }
steps : [ init_clang6, make_test ]
clang-sse-dynamic :
2019-11-23 04:51:46 +08:00
description : Build, run tests and check performance on Clang 6 and SSE 4.2 with a cmake dynamic build
2019-08-15 06:47:20 +08:00
executor : clang6
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_BUILD_STATIC=OFF }
steps : [ init_clang6, cmake_test ]
clang-sse-static :
2019-11-23 04:51:46 +08:00
description : Build, run tests and check performance on Clang 6 and SSE 4.2 with a cmake static build
2019-08-15 06:47:20 +08:00
executor : clang6
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_BUILD_STATIC=ON }
steps : [ init_clang6, cmake_test ]
clang-sse-sanitize :
2019-11-23 04:51:46 +08:00
description : Build, run tests and check performance on Clang 6 and SSE 4.2 with a cmake sanitize build
2019-08-15 06:47:20 +08:00
executor : clang6
environment : { CMAKE_TEST_FLAGS : -DSIMDJSON_BUILD_STATIC=OFF -DSIMDJSON_SANITIZE=ON }
steps : [ init_clang6, cmake_test ]
2019-02-26 03:38:06 +08:00
workflows :
2019-08-15 04:19:55 +08:00
version : 2.1
2019-02-26 03:38:06 +08:00
build_and_test :
jobs :
2019-08-15 06:47:20 +08:00
- gcc-avx
- gcc-avx-dynamic
- gcc-avx-static
- gcc-avx-sanitize
- gcc-sse
- gcc-sse-dynamic
- gcc-sse-static
- gcc-sse-sanitize
- clang-avx
- clang-avx-dynamic
- clang-avx-static
- clang-avx-sanitize
- clang-sse
- clang-sse-dynamic
- clang-sse-static
- clang-sse-sanitize
2019-11-23 04:51:46 +08:00
- gcc-avx-threaded
- gcc-avx-unthreaded
- clang-avx-threaded
- clang-avx-unthreaded
2019-08-15 04:19:55 +08:00
# TODO add windows: https://circleci.com/docs/2.0/configuration-reference/#windows