version: 2.1 .emulated_job: &defaultjob machine: true steps: - checkout - run: &checkouttask name: Pull submodules command: | git submodule init git submodule update git checkout $CIRCLECI_BRANCH git reset --hard $CIRCLECI_SHA1 - run: name: Install the emulation handlers command: docker run --rm --privileged multiarch/qemu-user-static:register --reset - run: name: Run the tests in a container command: | docker run -e CI=true -e PQCLEAN_ONLY_DIFF=1 -e PQCLEAN_SKIP_SCHEMES=sphincs-haraka-128f-robust,sphincs-haraka-192s-robust,sphincs-sha256-128f-robust,sphincs-sha256-192s-robust,sphincs-shake256-128f-robust,sphincs-shake256-192s-robust,sphincs-haraka-128f-simple,sphincs-haraka-192s-simple,sphincs-sha256-128f-simple,sphincs-sha256-192s-simple,sphincs-shake256-128f-simple,sphincs-shake256-192s-simple,sphincs-haraka-128s-robust,sphincs-haraka-256f-robust,sphincs-sha256-128s-robust,sphincs-sha256-256f-robust,sphincs-shake256-128s-robust,sphincs-shake256-256f-robust,sphincs-haraka-128s-simple,sphincs-haraka-256f-simple,sphincs-sha256-128s-simple,sphincs-sha256-256f-simple,sphincs-shake256-128s-simple,sphincs-shake256-256f-simple,sphincs-haraka-192f-robust,sphincs-haraka-256s-robust,sphincs-sha256-192f-robust,sphincs-sha256-256s-robust,sphincs-shake256-192f-robust,sphincs-shake256-256s-robust,sphincs-haraka-192f-simple,sphincs-haraka-256s-simple,sphincs-sha256-192f-simple,sphincs-sha256-256s-simple,sphincs-shake256-192f-simple,sphincs-shake256-256s-simple --rm -v `pwd`:`pwd` -w `pwd` "pqclean/ci-container:$ARCH" /bin/bash -c " uname -a && export CC=${CC} && pip3 install -r requirements.txt && mkdir test-results && cd test && python3 -m pytest --verbose --junitxml=test-results/pytest/results.xml --numprocesses=auto" no_output_timeout: 2h - store_test_results: path: test-results .native_job: &nativejob docker: - image: pqclean/ci-container:$ARCH steps: - checkout - run: <<: *checkouttask - run: name: Run tests command: | export CC=${CC} export PQCLEAN_ONLY_DIFF=1 export PQCLEAN_SKIP_SCHEMES=sphincs-haraka-128f-robust,sphincs-haraka-192s-robust,sphincs-sha256-128f-robust,sphincs-sha256-192s-robust,sphincs-shake256-128f-robust,sphincs-shake256-192s-robust,sphincs-haraka-128f-simple,sphincs-haraka-192s-simple,sphincs-sha256-128f-simple,sphincs-sha256-192s-simple,sphincs-shake256-128f-simple,sphincs-shake256-192s-simple,sphincs-haraka-128s-robust,sphincs-haraka-256f-robust,sphincs-sha256-128s-robust,sphincs-sha256-256f-robust,sphincs-shake256-128s-robust,sphincs-shake256-256f-robust,sphincs-haraka-128s-simple,sphincs-haraka-256f-simple,sphincs-sha256-128s-simple,sphincs-sha256-256f-simple,sphincs-shake256-128s-simple,sphincs-shake256-256f-simple,sphincs-haraka-192f-robust,sphincs-haraka-256s-robust,sphincs-sha256-192f-robust,sphincs-sha256-256s-robust,sphincs-shake256-192f-robust,sphincs-shake256-256s-robust,sphincs-haraka-192f-simple,sphincs-haraka-256s-simple,sphincs-sha256-192f-simple,sphincs-sha256-256s-simple,sphincs-shake256-192f-simple,sphincs-shake256-256s-simple pip3 install -r requirements.txt mkdir test-results cd test python3 -m pytest --verbose --junitxml=test-results/pytest/results.xml --numprocesses=auto no_output_timeout: 2h - store_test_results: path: test/test-results - store_artifacts: path: test/test-results jobs: arm64-gcc: <<: *defaultjob environment: CC: gcc ARCH: arm64 arm64-clang: <<: *defaultjob environment: CC: clang ARCH: arm64 arm32-gcc: <<: *defaultjob environment: CC: gcc ARCH: armhf arm32-clang: <<: *defaultjob environment: CC: clang ARCH: armhf ppc-clang: <<: *defaultjob environment: CC: clang ARCH: unstable-ppc ppc-gcc: <<: *defaultjob environment: CC: gcc ARCH: unstable-ppc amd64-gcc: <<: *nativejob environment: CC: gcc ARCH: amd64 amd64-clang: <<: *nativejob environment: CC: gcc ARCH: amd64 i386-gcc: <<: *nativejob environment: CC: gcc ARCH: i386 i386-clang: <<: *nativejob environment: CC: gcc ARCH: i386 # These are for the scheduled builds arm64-gcc-slow: <<: *defaultjob environment: CC: gcc ARCH: arm64 RUN_SLOW: 1 arm64-clang-slow: <<: *defaultjob environment: CC: clang ARCH: arm64 RUN_SLOW: 1 arm32-gcc-slow: <<: *defaultjob environment: CC: gcc ARCH: armhf RUN_SLOW: 1 arm32-clang-slow: <<: *defaultjob environment: CC: clang ARCH: armhf RUN_SLOW: 1 ppc-clang-slow: <<: *defaultjob environment: CC: clang ARCH: unstable-ppc RUN_SLOW: 1 ppc-gcc-slow: <<: *defaultjob environment: CC: gcc ARCH: unstable-ppc RUN_SLOW: 1 amd64-gcc-slow: <<: *nativejob environment: CC: gcc ARCH: amd64 RUN_SLOW: 1 amd64-clang-slow: <<: *nativejob environment: CC: gcc ARCH: amd64 RUN_SLOW: 1 i386-gcc-slow: <<: *nativejob environment: CC: gcc ARCH: i386 RUN_SLOW: 1 i386-clang-slow: <<: *nativejob environment: CC: gcc ARCH: i386 RUN_SLOW: 1 workflows: version: 2 build: jobs: - arm64-gcc: requires: - amd64-gcc - arm64-clang: requires: - amd64-clang - arm32-gcc: requires: - i386-gcc - arm32-clang: requires: - i386-clang - ppc-gcc: requires: - arm32-gcc - ppc-clang: requires: - arm32-clang - amd64-gcc - amd64-clang - i386-gcc - i386-clang scheduled: triggers: - schedule: cron: "0 5 * * 6" filters: branches: only: master jobs: - arm64-gcc-slow - arm64-gcc-slow - arm64-clang-slow - arm32-gcc-slow - arm32-clang-slow - ppc-gcc-slow - ppc-clang-slow - amd64-gcc-slow - amd64-clang-slow - i386-gcc-slow - i386-clang-slow # vim: set ft=yaml ts=2 sw=2 tw=0 et : # vim: set ft=yaml ts=2 sw=2 tw=0 et :