diff --git a/.cirrus.yml b/.cirrus.yml new file mode 100644 index 000000000..393e80a2c --- /dev/null +++ b/.cirrus.yml @@ -0,0 +1,99 @@ +env: + CIRRUS_CLONE_DEPTH: 1 + CI: 1 + +linux_task: + matrix: + - name: alpine + container: &step + image: ghcr.io/fish-shell/fish-ci/alpine:latest + memory: 4GB + - name: bionic + container: + <<: *step + image: ghcr.io/fish-shell/fish-ci/bionic:latest + - name: bionic-asan-clang + container: + <<: *step + image: ghcr.io/fish-shell/fish-ci/bionic-asan-clang:latest + - name: bionic-tsan + container: + <<: *step + image: ghcr.io/fish-shell/fish-ci/bionic-tsan:latest + - name: bionic-tsan-clang + container: + <<: *step + image: ghcr.io/fish-shell/fish-ci/bionic-tsan-clang:latest + - name: centos7 + container: + <<: *step + image: ghcr.io/fish-shell/fish-ci/centos7:latest + - name: centos8 + container: + <<: *step + image: ghcr.io/fish-shell/fish-ci/centos8:latest + - name: focal-32bit + container: + <<: *step + image: ghcr.io/fish-shell/fish-ci/focal-32bit:latest + - name: xenial + container: + <<: *step + image: ghcr.io/fish-shell/fish-ci/xenial:latest + + tests_script: + # cirrus at times gives us 32 procs and 2 GB of RAM + # Unrestriced parallelism results in OOM + - lscpu || true + - (cat /proc/meminfo | grep MemTotal) || true + - mkdir build && cd build + - cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCTEST_PARALLEL_LEVEL=6 .. + - ninja -j 6 fish fish_tests + - ninja fish_run_tests + +linux_arm_task: + matrix: + - name: focal-arm64 + arm_container: + image: ghcr.io/fish-shell/fish-ci/focal-arm64 + - name: jammy-armv7-32bit + arm_container: + image: ghcr.io/fish-shell/fish-ci/jammy-armv7-32bit + + tests_script: + # cirrus at times gives us 32 procs and 2 GB of RAM + # Unrestriced parallelism results in OOM + - lscpu || true + - (cat /proc/meminfo | grep MemTotal) || true + - mkdir build && cd build + - cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCTEST_PARALLEL_LEVEL=6 .. + - ninja -j 6 fish fish_tests + - file ./fish + - ninja fish_run_tests + +freebsd_task: + matrix: + - name: FreeBSD 14 + freebsd_instance: + image_family: freebsd-14-0-snap + - name: FreeBSD 13 + freebsd_instance: + image: freebsd-13-0-release-amd64 + - name: FreeBSD 12.3 + freebsd_instance: + image: freebsd-12-3-release-amd64 + tests_script: + - pkg install -y cmake devel/pcre2 devel/ninja misc/py-pexpect git + # BSDs have the following behavior: root may open or access files even if + # the mode bits would otherwise disallow it. For example root may open() + # a file with write privileges even if the file has mode 400. This breaks + # our tests for e.g. cd and path. So create a new unprivileged user to run tests. + - pw user add -n fish-user -s /bin/csh -d /home/fish-user + - mkdir -p /home/fish-user + - chown -R fish-user /home/fish-user + - mkdir build && cd build + - chown -R fish-user .. + - sudo -u fish-user -s whoami + - sudo -u fish-user -s cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCTEST_PARALLEL_LEVEL=1 .. + - sudo -u fish-user -s ninja -j 6 fish fish_tests + - sudo -u fish-user -s ninja fish_run_tests