+++ /dev/null
-version: 2
-
-jobs:
- # the first half of the jobs are in this test
- short-tests-0:
- # TODO: Create a small custom docker image with all the dependencies we need
- # preinstalled to reduce installation time.
- docker:
- - image: fbopensource/zstd-circleci-primary:0.0.1
- steps:
- - checkout
- - run:
- name: Test
- command: |
- ./tests/test-license.py
- cc -v
- CFLAGS="-O0 -Werror -pedantic" make allmost; make clean
- make c99build; make clean
- make c11build; make clean
- make -j regressiontest; make clean
- make shortest; make clean
- make cxxtest; make clean
- # the second half of the jobs are in this test
- short-tests-1:
- docker:
- - image: fbopensource/zstd-circleci-primary:0.0.1
- steps:
- - checkout
- - run:
- name: Test
- command: |
- make gnu90build; make clean
- make gnu99build; make clean
- make ppc64build V=1; make clean
- make ppcbuild V=1; make clean
- make armbuild V=1; make clean
- make aarch64build V=1; make clean
- make -C tests test-legacy test-longmatch; make clean
- make -C lib libzstd-nomt; make clean
- # This step should only be run in a cron job
- regression-test:
- docker:
- - image: fbopensource/zstd-circleci-primary:0.0.1
- environment:
- CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
- steps:
- - checkout
- # Restore the cached resources.
- - restore_cache:
- # We try our best to bust the cache when the data changes by hashing
- # data.c. If that doesn't work, simply update the version number here
- # and below. If we fail to bust the cache, the regression testing will
- # still work, since it has its own stamp, but will need to redownload
- # everything.
- keys:
- - regression-cache-{{ checksum "tests/regression/data.c" }}-v0
- - run:
- name: Regression Test
- command: |
- make -C programs zstd
- make -C tests/regression test
- mkdir -p $CIRCLE_ARTIFACTS
- ./tests/regression/test \
- --cache tests/regression/cache \
- --output $CIRCLE_ARTIFACTS/results.csv \
- --zstd programs/zstd
- echo "NOTE: The new results.csv is uploaded as an artifact to this job"
- echo " If this fails, go to the Artifacts pane in CircleCI, "
- echo " download /tmp/circleci-artifacts/results.csv, and if they "
- echo " are still good, copy it into the repo and commit it."
- echo "> diff tests/regression/results.csv $CIRCLE_ARTIFACTS/results.csv"
- diff tests/regression/results.csv $CIRCLE_ARTIFACTS/results.csv
- # Only save the cache on success (default), since if the failure happened
- # before we stamp the data cache, we will have a bad cache for this key.
- - save_cache:
- key: regression-cache-{{ checksum "tests/regression/data.c" }}-v0
- paths:
- - tests/regression/cache
- - store_artifacts:
- path: /tmp/circleci-artifacts
-
-
-workflows:
- version: 2
- commit:
- jobs:
- # Run the tests in parallel
- - short-tests-0
- - short-tests-1
- - regression-test
-
- nightly:
- triggers:
- - schedule:
- cron: "0 0 * * *"
- filters:
- branches:
- only:
- - release
- - dev
- - master
- jobs:
- # Run daily regression tests
- - regression-test
-
-
-
- # Longer tests
- #- make -C tests test-zstd-nolegacy && make clean
- #- pyenv global 3.4.4; make -C tests versionsTest && make clean
- #- make zlibwrapper && make clean
- #- gcc -v; make -C tests test32 MOREFLAGS="-I/usr/include/x86_64-linux-gnu" && make clean
- #- make uasan && make clean
- #- make asan32 && make clean
- #- make -C tests test32 CC=clang MOREFLAGS="-g -fsanitize=address -I/usr/include/x86_64-linux-gnu"
- # Valgrind tests
- #- CFLAGS="-O1 -g" make -C zlibWrapper valgrindTest && make clean
- #- make -C tests valgrindTest && make clean
- # ARM, AArch64, PowerPC, PowerPC64 tests
- #- make ppctest && make clean
- #- make ppc64test && make clean
- #- make armtest && make clean
- #- make aarch64test && make clean
jobs:
regression-test:
runs-on: ubuntu-latest
- services:
- docker:
- image: fbopensource/zstd-circleci-primary:0.0.1
- options: --entrypoint /bin/bash
- env:
- CIRCLE_ARTIFACTS: "/tmp/circleci-artifacts"
steps:
- uses: actions/checkout@v4
- - uses: actions/cache@v4
- with:
- key: regression-cache-{{ checksum "tests/regression/data.c" }}-v0
- path: tests/regression/cache
- restore-keys: regression-cache-{{ checksum "tests/regression/data.c" }}-v0
- - uses: actions/upload-artifact@v4
- with:
- path: "/tmp/circleci-artifacts"
- - name: Install Dependencies
- run: |
- sudo apt-get update
- sudo apt-get install libcurl4-gnutls-dev
- name: Regression Test
run: |
make -C programs zstd
make -C tests/regression test
- mkdir -p $CIRCLE_ARTIFACTS
- ./tests/regression/test \
- --cache tests/regression/cache \
- --output $CIRCLE_ARTIFACTS/results.csv \
- --zstd programs/zstd
- echo "NOTE: The new results.csv is uploaded as an artifact to this job"
- echo " If this fails, go to the Artifacts pane in CircleCI, "
- echo " download /tmp/circleci-artifacts/results.csv, and if they "
- echo " are still good, copy it into the repo and commit it."
- echo "> diff tests/regression/results.csv $CIRCLE_ARTIFACTS/results.csv"
- diff tests/regression/results.csv $CIRCLE_ARTIFACTS/results.csv
# Longer tests
#- make -C tests test-zstd-nolegacy && make clean