git subrepo pull (merge) --force deps/libchdr
[pcsx_rearmed.git] / deps / libchdr / deps / zstd-1.5.5 / .circleci / config.yml
1 version: 2
2
3 jobs:
4   # the first half of the jobs are in this test
5   short-tests-0:
6     # TODO: Create a small custom docker image with all the dependencies we need
7     #       preinstalled to reduce installation time.
8     docker:
9       - image: fbopensource/zstd-circleci-primary:0.0.1
10     steps:
11       - checkout
12       - run:
13           name: Test
14           command: |
15             ./tests/test-license.py
16             cc -v
17             CFLAGS="-O0 -Werror -pedantic" make allmost; make clean
18             make c99build; make clean
19             make c11build; make clean
20             make -j regressiontest; make clean
21             make shortest; make clean
22             make cxxtest; make clean
23   # the second half of the jobs are in this test
24   short-tests-1:
25     docker:
26       - image: fbopensource/zstd-circleci-primary:0.0.1
27     steps:
28       - checkout
29       - run:
30           name: Test
31           command: |
32             make gnu90build; make clean
33             make gnu99build; make clean
34             make ppc64build V=1; make clean
35             make ppcbuild   V=1; make clean
36             make armbuild   V=1; make clean
37             make aarch64build V=1; make clean
38             make -C tests test-legacy test-longmatch; make clean
39             make -C lib libzstd-nomt; make clean
40   # This step should only be run in a cron job
41   regression-test:
42     docker:
43       - image: fbopensource/zstd-circleci-primary:0.0.1
44     environment:
45       CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
46     steps:
47       - checkout
48       # Restore the cached resources.
49       - restore_cache:
50           # We try our best to bust the cache when the data changes by hashing
51           # data.c. If that doesn't work, simply update the version number here
52           # and below. If we fail to bust the cache, the regression testing will
53           # still work, since it has its own stamp, but will need to redownload
54           # everything.
55           keys:
56             - regression-cache-{{ checksum "tests/regression/data.c" }}-v0
57       - run:
58           name: Regression Test
59           command: |
60             make -C programs zstd
61             make -C tests/regression test
62             mkdir -p $CIRCLE_ARTIFACTS
63             ./tests/regression/test                     \
64                 --cache  tests/regression/cache         \
65                 --output $CIRCLE_ARTIFACTS/results.csv  \
66                 --zstd   programs/zstd
67             echo "NOTE: The new results.csv is uploaded as an artifact to this job"
68             echo "      If this fails, go to the Artifacts pane in CircleCI, "
69             echo "      download /tmp/circleci-artifacts/results.csv, and if they "
70             echo "      are still good, copy it into the repo and commit it."
71             echo "> diff tests/regression/results.csv $CIRCLE_ARTIFACTS/results.csv"
72             diff tests/regression/results.csv $CIRCLE_ARTIFACTS/results.csv
73       # Only save the cache on success (default), since if the failure happened
74       # before we stamp the data cache, we will have a bad cache for this key.
75       - save_cache:
76           key: regression-cache-{{ checksum "tests/regression/data.c" }}-v0
77           paths:
78             - tests/regression/cache
79       - store_artifacts:
80           path: /tmp/circleci-artifacts
81
82
83 workflows:
84   version: 2
85   commit:
86     jobs:
87       # Run the tests in parallel
88       - short-tests-0
89       - short-tests-1
90       - regression-test
91
92   nightly:
93     triggers:
94       - schedule:
95           cron: "0 0 * * *"
96           filters:
97             branches:
98               only:
99                 - release
100                 - dev
101                 - master
102     jobs:
103       # Run daily regression tests
104       - regression-test
105
106
107
108   # Longer tests
109     #- make -C tests test-zstd-nolegacy && make clean
110     #- pyenv global 3.4.4; make -C tests versionsTest && make clean
111     #- make zlibwrapper         && make clean
112     #- gcc -v; make -C tests test32 MOREFLAGS="-I/usr/include/x86_64-linux-gnu" && make clean
113     #- make uasan               && make clean
114     #- make asan32              && make clean
115     #- make -C tests test32 CC=clang MOREFLAGS="-g -fsanitize=address -I/usr/include/x86_64-linux-gnu"
116   # Valgrind tests
117     #- CFLAGS="-O1 -g" make -C zlibWrapper valgrindTest && make clean
118     #- make -C tests valgrindTest && make clean
119   # ARM, AArch64, PowerPC, PowerPC64 tests
120     #- make ppctest             && make clean
121     #- make ppc64test           && make clean
122     #- make armtest             && make clean
123     #- make aarch64test         && make clean