[pull] main from nushell:main #2582
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
name: continuous-integration | |
env: | |
NUSHELL_CARGO_TARGET: ci | |
NU_LOG_LEVEL: DEBUG | |
CLIPPY_OPTIONS: "-D warnings -D clippy::unwrap_used -A clippy::needless_collect -A clippy::result_large_err" | |
jobs: | |
fmt-clippy: | |
strategy: | |
fail-fast: true | |
matrix: | |
# Pinning to Ubuntu 20.04 because building on newer Ubuntu versions causes linux-gnu | |
# builds to link against a too-new-for-many-Linux-installs glibc version. Consider | |
# revisiting this when 20.04 is closer to EOL (April 2025) | |
platform: [windows-latest, macos-latest, ubuntu-20.04] | |
feature: [default, dataframe, extra] | |
include: | |
- feature: default | |
flags: "" | |
- feature: dataframe | |
flags: "--features=dataframe" | |
- feature: extra | |
flags: "--features=extra" | |
exclude: | |
- platform: windows-latest | |
feature: dataframe | |
- platform: macos-latest | |
feature: dataframe | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Rust toolchain and cache | |
uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 | |
with: | |
rustflags: "" | |
- name: cargo fmt | |
run: cargo fmt --all -- --check | |
- name: Clippy | |
run: cargo clippy --workspace ${{ matrix.flags }} --exclude nu_plugin_* -- $CLIPPY_OPTIONS | |
tests: | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: [windows-latest, macos-latest, ubuntu-20.04] | |
feature: [default, dataframe, extra] | |
include: | |
- feature: default | |
flags: "" | |
- feature: dataframe | |
flags: "--features=dataframe" | |
- feature: extra | |
flags: "--features=extra" | |
exclude: | |
- platform: windows-latest | |
feature: dataframe | |
- platform: macos-latest | |
feature: dataframe | |
- platform: windows-latest | |
feature: extra | |
- platform: macos-latest | |
feature: extra | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Rust toolchain and cache | |
uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 | |
with: | |
rustflags: "" | |
- name: Tests | |
run: cargo test --workspace --profile ci --exclude nu_plugin_* ${{ matrix.flags }} | |
std-lib-and-python-virtualenv: | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: [ubuntu-20.04, macos-latest, windows-latest] | |
py: | |
- py | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Rust toolchain and cache | |
uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 | |
with: | |
rustflags: "" | |
- name: Install Nushell | |
run: cargo install --path . --locked --no-default-features | |
- name: Standard library tests | |
run: nu -c 'use std testing; testing run-tests --path crates/nu-std' | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
- run: python -m pip install tox | |
- name: Install virtualenv | |
run: git clone https://github.com/pypa/virtualenv.git | |
shell: bash | |
- name: Test Nushell in virtualenv | |
run: | | |
cd virtualenv | |
# if we encounter problems with bleeding edge tests pin to the latest tag | |
# git checkout $(git describe --tags | cut -d - -f 1) | |
# We need to disable failing on coverage levels. | |
nu -c "open pyproject.toml | upsert tool.coverage.report.fail_under 1 | save patchproject.toml" | |
mv patchproject.toml pyproject.toml | |
tox -e ${{ matrix.py }} -- -k nushell | |
shell: bash | |
plugins: | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: [windows-latest, macos-latest, ubuntu-20.04] | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Rust toolchain and cache | |
uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 | |
with: | |
rustflags: "" | |
- name: Clippy | |
run: cargo clippy --package nu_plugin_* ${{ matrix.flags }} -- $CLIPPY_OPTIONS | |
- name: Tests | |
run: cargo test --profile ci --package nu_plugin_* |