2022-11-06 19:53:49 +00:00
|
|
|
env:
|
2024-06-12 15:28:23 +00:00
|
|
|
CIRRUS_CLONE_DEPTH: 100
|
2022-11-06 19:53:49 +00:00
|
|
|
CI: 1
|
|
|
|
|
|
|
|
linux_task:
|
|
|
|
matrix:
|
|
|
|
- name: alpine
|
|
|
|
container: &step
|
2024-08-03 16:55:13 +00:00
|
|
|
image: ghcr.io/krobelus/fish-ci/alpine:latest
|
2022-11-06 19:53:49 +00:00
|
|
|
memory: 4GB
|
2024-08-04 08:18:06 +00:00
|
|
|
- name: jammy
|
2022-11-06 19:53:49 +00:00
|
|
|
container:
|
|
|
|
<<: *step
|
2024-08-03 16:55:13 +00:00
|
|
|
image: ghcr.io/krobelus/fish-ci/jammy:latest
|
|
|
|
# - name: jammy-asan
|
|
|
|
# container:
|
|
|
|
# <<: *step
|
|
|
|
# image: ghcr.io/krobelus/fish-ci/jammy-asan:latest
|
|
|
|
# - name: focal-32bit
|
|
|
|
# container:
|
|
|
|
# <<: *step
|
|
|
|
# image: ghcr.io/krobelus/fish-ci/focal-32bit:latest
|
2022-11-06 19:53:49 +00:00
|
|
|
|
|
|
|
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 ..
|
2024-01-07 11:00:19 +00:00
|
|
|
- ninja -j 6 fish
|
2022-11-06 19:53:49 +00:00
|
|
|
- ninja fish_run_tests
|
|
|
|
|
2024-08-03 16:55:13 +00:00
|
|
|
only_if: $CIRRUS_REPO_OWNER == 'fish-shell'
|
2022-11-12 22:36:18 +00:00
|
|
|
|
2022-11-06 19:53:49 +00:00
|
|
|
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 ..
|
2024-01-07 11:00:19 +00:00
|
|
|
- ninja -j 6 fish
|
2022-11-06 19:53:49 +00:00
|
|
|
- file ./fish
|
|
|
|
- ninja fish_run_tests
|
|
|
|
|
2023-02-03 17:48:35 +00:00
|
|
|
# CI task disabled during RIIR transition
|
|
|
|
only_if: false && $CIRRUS_REPO_OWNER == 'fish-shell'
|
2022-11-12 22:36:18 +00:00
|
|
|
|
2022-11-06 19:53:49 +00:00
|
|
|
freebsd_task:
|
|
|
|
matrix:
|
2023-03-03 19:45:44 +00:00
|
|
|
# - name: FreeBSD 14
|
|
|
|
# freebsd_instance:
|
|
|
|
# image_family: freebsd-14-0-snap
|
2022-11-06 19:53:49 +00:00
|
|
|
- name: FreeBSD 13
|
|
|
|
freebsd_instance:
|
2023-05-23 17:17:25 +00:00
|
|
|
image: freebsd-13-2-release-amd64
|
2023-05-23 15:45:27 +00:00
|
|
|
# - name: FreeBSD 12.3
|
|
|
|
# freebsd_instance:
|
|
|
|
# image: freebsd-12-3-release-amd64
|
2022-11-06 19:53:49 +00:00
|
|
|
tests_script:
|
2024-01-30 19:38:55 +00:00
|
|
|
- pkg install -y cmake-core devel/pcre2 devel/ninja misc/py-pexpect git-lite terminfo-db
|
2023-02-02 21:19:26 +00:00
|
|
|
# libclang.so is a required build dependency for rust-c++ ffi bridge
|
|
|
|
- pkg install -y llvm
|
2022-11-06 19:53:49 +00:00
|
|
|
# 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
|
2024-04-28 13:43:42 +00:00
|
|
|
# FreeBSD's pkg currently has rust 1.66.0 while we need rust 1.70.0+. Use rustup to install
|
2023-02-02 21:19:26 +00:00
|
|
|
# the latest, but note that it only installs rust per-user.
|
|
|
|
- sudo -u fish-user -s fetch -qo - https://sh.rustup.rs > rustup.sh
|
|
|
|
- sudo -u fish-user -s sh ./rustup.sh -y --profile=minimal
|
|
|
|
# `sudo -s ...` does not invoke a login shell so we need a workaround to make sure the
|
|
|
|
# rustup environment is configured for subsequent `sudo -s ...` commands.
|
|
|
|
# For some reason, this doesn't do the job:
|
|
|
|
# - sudo -u fish-user sh -c 'echo source \$HOME/.cargo/env >> $HOME/.cshrc'
|
2022-11-06 19:53:49 +00:00
|
|
|
- sudo -u fish-user -s cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCTEST_PARALLEL_LEVEL=1 ..
|
2024-01-07 11:00:19 +00:00
|
|
|
- sudo -u fish-user sh -c '. $HOME/.cargo/env; ninja -j 6 fish'
|
2023-02-02 21:19:26 +00:00
|
|
|
- sudo -u fish-user sh -c '. $HOME/.cargo/env; ninja fish_run_tests'
|
2022-11-12 22:36:18 +00:00
|
|
|
|
|
|
|
only_if: $CIRRUS_REPO_OWNER == 'fish-shell'
|