mirror of
https://github.com/nushell/nushell.git
synced 2024-11-23 00:43:33 +01:00
067ceedf79
# Description The intended effect of the `extra` feature has been undermined by introducing the full builds on our release pages and having more activity on some of the extra commands. To simplify the feature matrix let's get rid of it and focus our effort on truly either refining a command to well-specified behavior or discarding it entirely from the `nu` binary and moving it into plugins. ## Details - Remove `--features extra` from CI - Don't explicitly name `extra` in full build wf - Remove feature extra from build-help scripts - Update README in `nu-cmd-extra` - Remove feature `extra` - Fix previously dead `format pattern` tests - Relax signature of `to html` - Fix/ignore `html::test_no_color_flag` - Remove dead features from `version` - Refine `to html` type signature # User-Facing Changes The commands that were previously only available when building with `--features extra` will now be available to everyone. This increases the number of dependencies slightly but has a limited impact on the overall binary size. # Tests + Formatting Some tests that were left in `nu-command` during cratification were dead because the feature was not passed to `nu-command` and only to `nu-cmd-lang` for feature-flag mention in `version`. Those tests have now been either fixed or ignored in one case. # After Submitting There may be places in the documentation where we point to `--features extra` that will now be moot (apart from the generated command help)
182 lines
4.9 KiB
YAML
182 lines
4.9 KiB
YAML
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
name: continuous-integration
|
|
|
|
env:
|
|
NUSHELL_CARGO_PROFILE: ci
|
|
NU_LOG_LEVEL: DEBUG
|
|
# If changing these settings also change toolkit.nu
|
|
CLIPPY_OPTIONS: "-D warnings -D clippy::unwrap_used"
|
|
|
|
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]
|
|
include:
|
|
- feature: default
|
|
flags: ""
|
|
- feature: dataframe
|
|
flags: "--features=dataframe"
|
|
exclude:
|
|
- platform: windows-latest
|
|
feature: dataframe
|
|
- platform: macos-latest
|
|
feature: dataframe
|
|
|
|
runs-on: ${{ matrix.platform }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4.1.1
|
|
|
|
- name: Setup Rust toolchain and cache
|
|
uses: actions-rust-lang/setup-rust-toolchain@v1.8.0
|
|
with:
|
|
rustflags: ""
|
|
|
|
- name: cargo fmt
|
|
run: cargo fmt --all -- --check
|
|
|
|
# If changing these settings also change toolkit.nu
|
|
- name: Clippy
|
|
run: cargo clippy --workspace ${{ matrix.flags }} --exclude nu_plugin_* -- $CLIPPY_OPTIONS
|
|
|
|
# In tests we don't have to deny unwrap
|
|
- name: Clippy of tests
|
|
run: cargo clippy --tests --workspace ${{ matrix.flags }} --exclude nu_plugin_* -- -D warnings
|
|
|
|
tests:
|
|
strategy:
|
|
fail-fast: true
|
|
matrix:
|
|
platform: [windows-latest, macos-latest, ubuntu-20.04]
|
|
feature: [default, dataframe]
|
|
include:
|
|
# linux CI cannot handle clipboard feature
|
|
- default-flags: ""
|
|
- platform: ubuntu-20.04
|
|
default-flags: "--no-default-features --features=default-no-clipboard"
|
|
- feature: default
|
|
flags: ""
|
|
- feature: dataframe
|
|
flags: "--features=dataframe"
|
|
exclude:
|
|
- platform: windows-latest
|
|
feature: dataframe
|
|
- platform: macos-latest
|
|
feature: dataframe
|
|
|
|
runs-on: ${{ matrix.platform }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4.1.1
|
|
|
|
- name: Setup Rust toolchain and cache
|
|
uses: actions-rust-lang/setup-rust-toolchain@v1.8.0
|
|
with:
|
|
rustflags: ""
|
|
|
|
- name: Tests
|
|
run: cargo test --workspace --profile ci --exclude nu_plugin_* ${{ matrix.default-flags }} ${{ matrix.flags }}
|
|
|
|
- name: Check for clean repo
|
|
shell: bash
|
|
run: |
|
|
if [ -n "$(git status --porcelain)" ]; then
|
|
echo "there are changes";
|
|
git status --porcelain
|
|
exit 1
|
|
else
|
|
echo "no changes in working directory";
|
|
fi
|
|
|
|
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@v4.1.1
|
|
|
|
- name: Setup Rust toolchain and cache
|
|
uses: actions-rust-lang/setup-rust-toolchain@v1.8.0
|
|
with:
|
|
rustflags: ""
|
|
|
|
- name: Install Nushell
|
|
run: cargo install --path . --locked --no-default-features
|
|
|
|
- name: Standard library tests
|
|
run: nu -c 'use crates/nu-std/testing.nu; testing run-tests --path crates/nu-std'
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.10"
|
|
|
|
- name: Install virtualenv
|
|
run: pip install virtualenv
|
|
shell: bash
|
|
|
|
- name: Test Nushell in virtualenv
|
|
run: nu scripts/test_virtualenv.nu
|
|
shell: bash
|
|
|
|
- name: Check for clean repo
|
|
shell: bash
|
|
run: |
|
|
if [ -n "$(git status --porcelain)" ]; then
|
|
echo "there are changes";
|
|
git status --porcelain
|
|
exit 1
|
|
else
|
|
echo "no changes in working directory";
|
|
fi
|
|
|
|
plugins:
|
|
strategy:
|
|
fail-fast: true
|
|
matrix:
|
|
platform: [windows-latest, macos-latest, ubuntu-20.04]
|
|
|
|
runs-on: ${{ matrix.platform }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4.1.1
|
|
|
|
- name: Setup Rust toolchain and cache
|
|
uses: actions-rust-lang/setup-rust-toolchain@v1.8.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_*
|
|
|
|
- name: Check for clean repo
|
|
shell: bash
|
|
run: |
|
|
if [ -n "$(git status --porcelain)" ]; then
|
|
echo "there are changes";
|
|
git status --porcelain
|
|
exit 1
|
|
else
|
|
echo "no changes in working directory";
|
|
fi
|