From ac771ac7e7472cc55c5e8814d90d57c69ff13b9d Mon Sep 17 00:00:00 2001 From: Thomas Fussell Date: Sat, 2 Jan 2021 12:32:51 -0500 Subject: [PATCH 1/3] translate travis to circleci --- .circleci/config.yml | 78 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..7d652a98 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,78 @@ +version: 2.1 + +jobs: + build: + docker: + - image: lycantropos/cmake:3.9.5 + parameters: + benchmarks: + default: "OFF" + type: string + build-type: + default: Release + type: string + coverage: + default: "OFF" + type: string + cxx-ver: + default: "11" + type: string + samples: + default: "OFF" + type: string + static: + default: "ON" + type: string + steps: + - checkout + - run: cmake -D XLNT_CXX_LANG=<< parameters.cxx-ver >> -D STATIC=<< parameters.static >> -D BENCHMARKS=<< parameters.benchmarks >> -D SAMPLES=<< parameters.samples >> -D COVERAGE=<< parameters.coverage >> -D CMAKE_BUILD_TYPE=<< parameters.build-type >> . + - run: cmake --build . -- -j2 + - run: ./tests/xlnt.test + - when: + condition: + equal: [ "ON", << parameters.samples >> ] + steps: + - run: ./samples/sample-decrypt + - run: ./samples/sample-img2xlsx ./samples/data/cafe.jpg img.xlsx + - run: ./samples/sample-documentation + - when: + condition: + equal: [ "ON", << parameters.benchmarks >> ] + steps: + - run: ./benchmarks/benchmark-styles + - run: ./benchmarks/benchmark-writer + - when: + condition: + equal: [ "ON", << parameters.coverage >> ] + steps: + - run: lcov --directory source/CMakeFiles/xlnt.dir --capture --output-file coverage.info --base-directory ../source --no-external --gcov-tool /usr/bin/gcov-6 + - run: lcov --output-file coverage.info --remove coverage.info source/detail/serialization/miniz.cpp + - run: i=$(dirname $(pwd)) + - run: sed -i "s|$i/||" coverage.info + - run: cd .. + - run: coveralls-lcov build/coverage.info + +workflows: + test: + jobs: + - build: + matrix: + parameters: + cxx-ver: + - "11" + - "17" + build-type: + - Release + - Debug + static: + - "ON" + - "OFF" + build: + jobs: + - build: + cxx-ver: "11" + build-type: Debug + static: "ON" + samples: "ON" + benchmarks: "ON" + coverage: "OFF" From e6ecd04265b6eb0690227dfec8d933dd8ab055f9 Mon Sep 17 00:00:00 2001 From: Thomas Fussell Date: Sat, 2 Jan 2021 12:49:36 -0500 Subject: [PATCH 2/3] use smaller image --- .circleci/config.yml | 10 +- .travis.yml | 231 --------------------------------------- samples/data/penguin.jpg | Bin 0 -> 1267 bytes 3 files changed, 6 insertions(+), 235 deletions(-) delete mode 100644 .travis.yml create mode 100644 samples/data/penguin.jpg diff --git a/.circleci/config.yml b/.circleci/config.yml index 7d652a98..366e91af 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -33,7 +33,7 @@ jobs: equal: [ "ON", << parameters.samples >> ] steps: - run: ./samples/sample-decrypt - - run: ./samples/sample-img2xlsx ./samples/data/cafe.jpg img.xlsx + - run: ./samples/sample-img2xlsx ./samples/data/penguin.jpg img.xlsx - run: ./samples/sample-documentation - when: condition: @@ -53,9 +53,10 @@ jobs: - run: coveralls-lcov build/coverage.info workflows: - test: + build: jobs: - build: + name: tests matrix: parameters: cxx-ver: @@ -67,12 +68,13 @@ workflows: static: - "ON" - "OFF" - build: - jobs: - build: + name: samples-benchmarks-coverage cxx-ver: "11" build-type: Debug static: "ON" samples: "ON" benchmarks: "ON" coverage: "OFF" + requires: + - tests \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 46619412..00000000 --- a/.travis.yml +++ /dev/null @@ -1,231 +0,0 @@ -# cpp takes longer -language: minimal -sudo: false -dist: trusty - -git: - depth: false - -notifications: - email: false - -# set up build matrix -matrix: - include: - # ============= GCC ================== - # gcc-5, c++11, release build, dynamic linking - - os: linux - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 - env: - - CXX_COMPILER=g++-5 - - C_COMPILER=gcc-5 - - CXX_VER=11 - - BUILD_TYPE=Release - - COVERAGE=OFF - - STATIC=OFF - - SAMPLES=OFF - - BENCHMARKS=OFF - - RELEASE=OFF - - # ============= GCC ================== - # gcc-6, c++11, release build, dynamic linking - - os: linux - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-6 - env: - - CXX_COMPILER=g++-6 - - C_COMPILER=gcc-6 - - CXX_VER=11 - - BUILD_TYPE=Release - - COVERAGE=OFF - - STATIC=OFF - - SAMPLES=OFF - - BENCHMARKS=OFF - - RELEASE=OFF - - # gcc-7, c++14, release build, static linking - - os: linux - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-7 - env: - - CXX_COMPILER=g++-7 - - C_COMPILER=gcc-7 - - CXX_VER=14 - - BUILD_TYPE=Release - - COVERAGE=OFF - - STATIC=ON - - SAMPLES=OFF - - BENCHMARKS=OFF - - RELEASE=OFF - - # gcc-8, c++17, release build, static linking, samples + benchmarks compiled and run - - os: linux - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-8 - env: - - CXX_COMPILER=g++-8 - - C_COMPILER=gcc-8 - - CXX_VER=17 - - BUILD_TYPE=Release - - COVERAGE=OFF - - STATIC=ON - - SAMPLES=ON - - BENCHMARKS=ON - - RELEASE=ON - - # =========== CLANG ============= - # clang 4, c++11, release build, dynamic linking - - os: linux - compiler: clang - addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-4.0 - packages: - - clang-4.0 - env: - - CXX_COMPILER=clang++-4.0 - - C_COMPILER=clang-4.0 - - CXX_VER=11 - - BUILD_TYPE=Release - - COVERAGE=OFF - - STATIC=OFF - - SAMPLES=OFF - - BENCHMARKS=OFF - - RELEASE=OFF - - # clang 5, c++14, release build, dynamic linking - - os: linux - compiler: clang - addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-5.0 - packages: - - clang-5.0 - env: - - CXX_COMPILER=clang++-5.0 - - C_COMPILER=clang-5.0 - - CXX_VER=14 - - BUILD_TYPE=Release - - COVERAGE=OFF - - STATIC=ON - - SAMPLES=OFF - - BENCHMARKS=OFF - - RELEASE=OFF - - # clang 6, c++17, release build, static linking, samples + benchmarks compiled and run - - os: linux - compiler: clang - addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-6.0 - packages: - - clang-6.0 - env: - - CXX_COMPILER=clang++-6.0 - - C_COMPILER=clang-6.0 - - CXX_VER=17 - - BUILD_TYPE=Release - - COVERAGE=OFF - - STATIC=ON - - SAMPLES=ON - - BENCHMARKS=ON - - RELEASE=ON - - # ============= CODE COVERAGE =============== - # gcc-6, c++11, debug build, static linking, code coverage enabled - - os: linux - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-6 - - lcov - env: - - CXX_COMPILER=g++-6 - - C_COMPILER=gcc-6 - - CXX_VER=11 - - BUILD_TYPE=Debug - - COVERAGE=ON - - STATIC=ON - - SAMPLES=OFF - -before_install: - - export CC=${C_COMPILER} - - export CXX=${CXX_COMPILER} - -install: - - | - if [[ "${COVERAGE}" == "ON" ]]; then - gem install coveralls-lcov; - fi - - ${CXX} --version - - cmake --version - -script: - - mkdir build - - cd build - - cmake .. -DXLNT_CXX_LANG=${CXX_VER} -DSTATIC=$STATIC -DBENCHMARKS=$BENCHMARKS -DSAMPLES=$SAMPLES -DCOVERAGE=$COVERAGE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DRELEASE=$RELEASE - - cmake --build . -- -j2 - - ./tests/xlnt.test - - echo "samples" && echo 'travis_fold:start:samples' - - if [[ "${SAMPLES}" == "ON" ]]; then ./samples/sample-decrypt; fi - - if [[ "${SAMPLES}" == "ON" ]]; then ./samples/sample-img2xlsx "../samples/data/cafe.jpg" "img.xlsx"; fi - - if [[ "${SAMPLES}" == "ON" ]]; then ./samples/sample-documentation; fi - - echo 'travis_fold:end:samples' - - echo "benchmarks" && echo 'travis_fold:start:benchmarks' - - if [[ "${BENCHMARKS}" == "ON" ]]; then ./benchmarks/benchmark-styles; fi - - if [[ "${BENCHMARKS}" == "ON" ]]; then ./benchmarks/benchmark-writer; fi - - echo 'travis_fold:end:benchmarks' - - -after_success: - - | - if [[ "${COVERAGE}" == "ON" ]]; then - lcov --directory source/CMakeFiles/xlnt.dir --capture --output-file coverage.info --base-directory ../source --no-external --gcov-tool /usr/bin/gcov-6 - lcov --output-file coverage.info --remove coverage.info source/detail/serialization/miniz.cpp - i=$(dirname $(pwd)) - sed -i "s|$i/||" coverage.info - cd .. - coveralls-lcov build/coverage.info - fi - -deploy: - provider: releases - api_key: - secure: "EJKEQkbmNFyXAJYOro7/wSlxSns4O4RAmht5PCBYuOgEqIbB1+QbQjNZd18KyCkqaHQEvww4hVGMdcFsTFnsznjGo6NnDtiYTdhiREtdUd6ohUD0eHTZ15ZL7mW1XR8HWqvv33piDX40UI/dFn1XYLnWunaLZvF5WPa9bzTsloaYHbjxoRw5S4fd0VyqZ2w2zuezCCRUezDcNGOxbVTbB3moSh+hpjrNkw7YxoPNm48CwGRVeRj28XuhDjobfRtPSZMb6Y+EDUnrIZI1mKvB1bkL8QR2ndBtqlG0BWvmEcdDuiQnraJk3iRIAU5T/ycyRqR2UKcW2Fv0iVp5SL9VuqhcvIUxTsYXzuNOZ3hKiWRTj6ndG+gDBsD1K5YwScZksAImwvj/VGEla9Q044W3PbYV2GUE++8mtiZUaxbkaP+uDFUBR5eXqAkte9mainwJ3eaMJ7Tx1KCqkzKO011nUasWfmBWxRUA8vm44SfzwzVfjXToLQZGe4KYzF2cHaXo2YIC48vE/DYs3VnVvnrCjNDO8Cr3m+lfdulhjIZlg+WymQcxuJs7LVzCW7mBPNnrUNOOrGCGP4f/hFxBLk8/eJDznIAzbW27Z1zAHn+MlbADRBzC0Y7cmme4Zu2W7Wy9NTvzNsKabOH/Fe1TfGetEEf6mZ5g7Q3+oZPJ2raLFD8=" - file_glob: true - file: build/*.tar.gz - skip_cleanup: true - overwite: true - on: - repo: tfussell/xlnt - tags: true diff --git a/samples/data/penguin.jpg b/samples/data/penguin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7bbaac249504cd9222b28fae95f31acd6a9400b4 GIT binary patch literal 1267 zcmex=PfpQEif~-P{hK_8)fr;!& zg(60c6BlwQJ8e8D8g%i4ig8j=6DOCLxP+vXs+zinrk07RnYo3fm9vYho4bdnS8zyZ zSa?KaRB}pcT6#uiR&hybS$RceRdY*gTYE=m*QCi)rcRqaW9F9X@jO*zpr5PhGlvL#L{}KKmz3FSN_2GY7KMEhpi~rdC zsQs<{N29y@ME=Np_`AKUPOnD$N9+UXd?EkpN9())GsxE&)JXr(|M2;6)Uln9SNHlK zUcmlG`1C(6#ufi=MU@|2&+;ei2kRsLo5|l6|DCtTF?(@M{txl$$Nw3){uF#6cg^SCQ=9v6=bJsDADSP(Klq=aXFlsc z#UI)3*KN4-SN`Z=e#|dbVV2KWe=ux+wtjE?hrqYaUemvse>8uy`a>1}4dKW6NBBFe z%$w`e@^6-V{YZU0zxAHg-xdEPDxUpki1?`AxJAEh{?_&*{I|jn*)!H>zHg2f{>saL zWS;GnKjI(Ej)(t9{kZ$^bbE%&JtrCe1ZwWkd zWuKhIER%;^TOO@S$_!Z^)U(2B^HRTTLC(NAtK6nsnd&Mj$NeGap6!2zrnPk^_e<@6 zFvqHGs`#7yhx2cSKjx9&e*f70_Wuk5CHazdXYOwmoBGlGxV=bC>2JLngAbN)xK4wMCDm#3f*KLV<*pgTuQ>~Jh7kgR5L^BU2K9n+; OY8lkjwd}F{|C<2kiv}(L literal 0 HcmV?d00001 From e702e7e68b8dcae2543cfc4ce625e161cd7b959b Mon Sep 17 00:00:00 2001 From: Thomas Fussell Date: Sat, 2 Jan 2021 12:50:27 -0500 Subject: [PATCH 3/3] remove requires --- .circleci/config.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 366e91af..3319b667 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -76,5 +76,3 @@ workflows: samples: "ON" benchmarks: "ON" coverage: "OFF" - requires: - - tests \ No newline at end of file