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
|
|
|
|
- run: make test
|
|
|
|
- run: make checkperf
|
|
|
|
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
|
|
|
|
|