mirror of
https://github.com/cmclark00/retro-imager.git
synced 2025-05-24 18:55:21 +01:00
Update various bundled dependencies to handle archive formats. (Only used on Windows and OSX. On Linux system libraries are used)
123 lines
4.4 KiB
YAML
123 lines
4.4 KiB
YAML
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
|