mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-05-29 18:51:15 -03:00
Document system test dependencies
Notably, the parent commit adds wget. While at it, extract a reusable action.
This commit is contained in:
43
.github/actions/install-dependencies/action.yml
vendored
Normal file
43
.github/actions/install-dependencies/action.yml
vendored
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
name: Install dependencies for system tests
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
include_sphinx:
|
||||||
|
description: Whether to install Sphinx
|
||||||
|
required: true
|
||||||
|
default: false
|
||||||
|
include_pcre:
|
||||||
|
description: Whether to install the PCRE library
|
||||||
|
required: false
|
||||||
|
default: true
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- shell: bash
|
||||||
|
env:
|
||||||
|
include_sphinx: ${{ inputs.include_sphinx }}
|
||||||
|
include_pcre: ${{ inputs.include_pcre }}
|
||||||
|
run: |
|
||||||
|
set -x
|
||||||
|
: "optional dependencies"
|
||||||
|
sudo apt install \
|
||||||
|
gettext \
|
||||||
|
$(if $include_pcre; then echo libpcre2-dev; fi) \
|
||||||
|
$(if $include_sphinx; then echo python3-sphinx; fi) \
|
||||||
|
;
|
||||||
|
: "system test dependencies"
|
||||||
|
sudo apt install \
|
||||||
|
diffutils $(: "for diff") \
|
||||||
|
git \
|
||||||
|
gettext \
|
||||||
|
less \
|
||||||
|
$(if ${{ inputs.include_pcre }}; then echo libpcre2-dev; fi) \
|
||||||
|
python3-pexpect \
|
||||||
|
tmux \
|
||||||
|
wget \
|
||||||
|
;
|
||||||
|
- uses: ./.github/actions/install-sphinx-markdown-builder
|
||||||
|
if: ${{ inputs.include_sphinx == 'true' }}
|
||||||
60
.github/workflows/test.yml
vendored
60
.github/workflows/test.yml
vendored
@@ -11,18 +11,17 @@ permissions:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ubuntu:
|
ubuntu:
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: ./.github/actions/rust-toolchain@oldest-supported
|
- uses: ./.github/actions/rust-toolchain@oldest-supported
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
|
uses: ./.github/actions/install-dependencies
|
||||||
|
with:
|
||||||
|
include_sphinx: true
|
||||||
|
- name: Generate a locale that uses a comma as decimal separator.
|
||||||
run: |
|
run: |
|
||||||
sudo apt install gettext libpcre2-dev python3-pexpect python3-sphinx tmux
|
|
||||||
# Generate a locale that uses a comma as decimal separator.
|
|
||||||
sudo locale-gen fr_FR.UTF-8
|
sudo locale-gen fr_FR.UTF-8
|
||||||
- uses: ./.github/actions/install-sphinx-markdown-builder
|
|
||||||
- name: cmake
|
- name: cmake
|
||||||
run: |
|
run: |
|
||||||
mkdir build && cd build
|
mkdir build && cd build
|
||||||
@@ -43,18 +42,20 @@ jobs:
|
|||||||
git --no-pager diff --exit-code || { echo 'There are uncommitted changes after regenerating the gettext PO files. Make sure to update them via `build_tools/update_translations.fish` after changing source files.'; exit 1; }
|
git --no-pager diff --exit-code || { echo 'There are uncommitted changes after regenerating the gettext PO files. Make sure to update them via `build_tools/update_translations.fish` after changing source files.'; exit 1; }
|
||||||
|
|
||||||
ubuntu-32bit-static-pcre2:
|
ubuntu-32bit-static-pcre2:
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: ./.github/actions/rust-toolchain@oldest-supported
|
- uses: ./.github/actions/rust-toolchain@oldest-supported
|
||||||
with:
|
with:
|
||||||
targets: "i586-unknown-linux-gnu" # rust-toolchain wants this comma-separated
|
targets: "i586-unknown-linux-gnu"
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
|
uses: ./.github/actions/install-dependencies
|
||||||
|
with:
|
||||||
|
include_pcre: false
|
||||||
|
include_sphinx: false
|
||||||
|
- name: Install g++-multilib
|
||||||
run: |
|
run: |
|
||||||
sudo apt update
|
sudo apt install g++-multilib
|
||||||
sudo apt install gettext python3-pexpect g++-multilib tmux
|
|
||||||
- name: cmake
|
- name: cmake
|
||||||
env:
|
env:
|
||||||
CFLAGS: "-m32"
|
CFLAGS: "-m32"
|
||||||
@@ -69,7 +70,6 @@ jobs:
|
|||||||
make -C build VERBOSE=1 fish_run_tests
|
make -C build VERBOSE=1 fish_run_tests
|
||||||
|
|
||||||
ubuntu-asan:
|
ubuntu-asan:
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
# Rust has two different memory sanitizers of interest; they can't be used at the same time:
|
# Rust has two different memory sanitizers of interest; they can't be used at the same time:
|
||||||
@@ -79,7 +79,6 @@ jobs:
|
|||||||
#
|
#
|
||||||
RUSTFLAGS: "-Zsanitizer=address"
|
RUSTFLAGS: "-Zsanitizer=address"
|
||||||
# RUSTFLAGS: "-Zsanitizer=memory -Zsanitizer-memory-track-origins"
|
# RUSTFLAGS: "-Zsanitizer=memory -Zsanitizer-memory-track-origins"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
# All -Z options require running nightly
|
# All -Z options require running nightly
|
||||||
@@ -89,8 +88,11 @@ jobs:
|
|||||||
# this is comma-separated
|
# this is comma-separated
|
||||||
components: rust-src
|
components: rust-src
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
|
uses: ./.github/actions/install-dependencies
|
||||||
|
with:
|
||||||
|
include_sphinx: false
|
||||||
|
- name: Install llvm
|
||||||
run: |
|
run: |
|
||||||
sudo apt install gettext libpcre2-dev python3-pexpect tmux
|
|
||||||
sudo apt install llvm # for llvm-symbolizer
|
sudo apt install llvm # for llvm-symbolizer
|
||||||
- name: cmake
|
- name: cmake
|
||||||
env:
|
env:
|
||||||
@@ -119,38 +121,8 @@ jobs:
|
|||||||
export LSAN_OPTIONS="$LSAN_OPTIONS:suppressions=$PWD/build_tools/lsan_suppressions.txt"
|
export LSAN_OPTIONS="$LSAN_OPTIONS:suppressions=$PWD/build_tools/lsan_suppressions.txt"
|
||||||
make -C build VERBOSE=1 fish_run_tests
|
make -C build VERBOSE=1 fish_run_tests
|
||||||
|
|
||||||
# Our clang++ tsan builds are not recognizing safe rust patterns (such as the fact that Drop
|
|
||||||
# cannot be called while a thread is using the object in question). Rust has its own way of
|
|
||||||
# running TSAN, but for the duration of the port from C++ to Rust, we'll keep this disabled.
|
|
||||||
|
|
||||||
# ubuntu-threadsan:
|
|
||||||
#
|
|
||||||
# runs-on: ubuntu-latest
|
|
||||||
#
|
|
||||||
# steps:
|
|
||||||
# - uses: actions/checkout@v4
|
|
||||||
# - uses: ./.github/actions/rust-toolchain@oldest-supported
|
|
||||||
# - name: Install deps
|
|
||||||
# run: |
|
|
||||||
# sudo apt install gettext libpcre2-dev python3-pexpect tmux
|
|
||||||
# - name: cmake
|
|
||||||
# env:
|
|
||||||
# FISH_CI_SAN: 1
|
|
||||||
# CC: clang
|
|
||||||
# run: |
|
|
||||||
# mkdir build && cd build
|
|
||||||
# cmake ..
|
|
||||||
# - name: make
|
|
||||||
# run: |
|
|
||||||
# make
|
|
||||||
# - name: make fish_run_tests
|
|
||||||
# run: |
|
|
||||||
# make -C build fish_run_tests
|
|
||||||
|
|
||||||
macos:
|
macos:
|
||||||
|
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
|
|
||||||
env:
|
env:
|
||||||
# macOS runners keep having issues loading Cargo.toml dependencies from git (GitHub) instead
|
# macOS runners keep having issues loading Cargo.toml dependencies from git (GitHub) instead
|
||||||
# of crates.io, so give this a try. It's also sometimes significantly faster on all platforms.
|
# of crates.io, so give this a try. It's also sometimes significantly faster on all platforms.
|
||||||
@@ -176,9 +148,7 @@ jobs:
|
|||||||
make -C build VERBOSE=1 fish_run_tests
|
make -C build VERBOSE=1 fish_run_tests
|
||||||
|
|
||||||
windows:
|
windows:
|
||||||
|
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ Compiling fish requires:
|
|||||||
Sphinx is also optionally required to build the documentation from a
|
Sphinx is also optionally required to build the documentation from a
|
||||||
cloned git repository.
|
cloned git repository.
|
||||||
|
|
||||||
Additionally, running the full test suite requires Python 3.5+, tmux, and the pexpect package.
|
Additionally, running the full test suite requires diff, git, Python 3.5+, pexpect, less, tmux and wget.
|
||||||
|
|
||||||
Building from source with CMake
|
Building from source with CMake
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
Reference in New Issue
Block a user