mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-27 19:53:36 +08:00
91be7489bc
We can re-enable these once we're nearing a RIIR release (or if someone thinks it's a good use of their time to fix them before then). Otherwise we're just going to have GitHub reporting CI failure for all commits instead of just the ones that actually broke something. (I'm mainly trying to get the branch in a good state to merge into master.)
119 lines
4.6 KiB
YAML
119 lines
4.6 KiB
YAML
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
|
|
|
|
# CI task disabled during RIIR transition
|
|
only_if: false && $CIRRUS_REPO_OWNER == 'fish-shell'
|
|
|
|
linux_arm_task:
|
|
matrix:
|
|
- name: focal-arm64
|
|
arm_container:
|
|
image: ghcr.io/fish-shell/fish-ci/focal-arm64
|
|
only_if: $CIRRUS_REPO_OWNER == 'fish-shell'
|
|
- 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
|
|
|
|
# CI task disabled during RIIR transition
|
|
only_if: false && $CIRRUS_REPO_OWNER == 'fish-shell'
|
|
|
|
freebsd_task:
|
|
matrix:
|
|
- name: FreeBSD 14
|
|
freebsd_instance:
|
|
image_family: freebsd-14-0-snap
|
|
- name: FreeBSD 13
|
|
freebsd_instance:
|
|
image: freebsd-13-1-release-amd64
|
|
- name: FreeBSD 12.3
|
|
freebsd_instance:
|
|
image: freebsd-12-3-release-amd64
|
|
tests_script:
|
|
- pkg install -y cmake-core devel/pcre2 devel/ninja misc/py-pexpect git-lite
|
|
# libclang.so is a required build dependency for rust-c++ ffi bridge
|
|
- pkg install -y llvm
|
|
# 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
|
|
# FreeBSD's pkg currently has rust 1.66.0 while we need rust 1.67.0+. Use rustup to install
|
|
# 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'
|
|
- sudo -u fish-user -s cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCTEST_PARALLEL_LEVEL=1 ..
|
|
- sudo -u fish-user sh -c '. $HOME/.cargo/env; ninja -j 6 fish fish_tests'
|
|
- sudo -u fish-user sh -c '. $HOME/.cargo/env; ninja fish_run_tests'
|
|
|
|
only_if: $CIRRUS_REPO_OWNER == 'fish-shell'
|