зеркало из
https://github.com/glebtv/tui-textarea.git
synced 2026-09-03 06:16:17 +03:00
chore: ratatui 0.30 maintenance + collaboration baseline (#1)
Этот коммит содержится в:
121
.github/workflows/ci.yml
поставляемый
121
.github/workflows/ci.yml
поставляемый
@@ -1,79 +1,62 @@
|
||||
name: CI
|
||||
on: [push, pull_request]
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
unit-test:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
fail-fast: true
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- name: Install cargo-llvm-cov
|
||||
uses: taiki-e/install-action@cargo-llvm-cov
|
||||
- name: Run tests on Linux or macOS
|
||||
run: |
|
||||
cargo llvm-cov --color always --lcov --output-path lcov.info --features=search,termwiz,termion,serde,arbitrary
|
||||
cargo llvm-cov --color always --no-run
|
||||
if: ${{ matrix.os != 'windows-latest' }}
|
||||
- name: Run tests on Windows
|
||||
run: |
|
||||
cargo llvm-cov --color always --lcov --output-path lcov.info --features=search,termwiz,serde,arbitrary
|
||||
cargo llvm-cov --color always --no-run
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
- run: cargo test --no-default-features --features=tuirs-crossterm,search -- --skip .rs
|
||||
- run: cargo test --no-default-features --features=tuirs-termion,search -- --skip .rs
|
||||
if: ${{ matrix.os != 'windows-latest' }}
|
||||
- run: cargo test --no-default-features --features=no-backend,search -- --skip .rs
|
||||
- run: cargo test --no-default-features --features=tuirs-no-backend,search -- --skip .rs
|
||||
- uses: codecov/codecov-action@v4
|
||||
with:
|
||||
files: lcov.info
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
lint:
|
||||
cargo-fmt:
|
||||
name: cargo fmt --check
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
components: clippy,rustfmt
|
||||
components: rustfmt
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- run: cargo fmt -- --check
|
||||
- run: cargo clippy --examples --tests -- -D warnings
|
||||
- run: cargo clippy --examples --tests --features search,serde -- -D warnings
|
||||
- run: cargo clippy --examples --tests --no-default-features --features termion -- -D warnings
|
||||
- run: cargo clippy --examples --tests --no-default-features --features termion,search -- -D warnings
|
||||
- run: cargo clippy --examples --tests --no-default-features --features termwiz -- -D warnings
|
||||
- run: cargo clippy --examples --tests --no-default-features --features termwiz,search -- -D warnings
|
||||
- run: cargo clippy --examples --tests --no-default-features --features no-backend -- -D warnings
|
||||
- run: cargo clippy --examples --tests --no-default-features --features no-backend,search -- -D warnings
|
||||
- run: cargo clippy --examples --tests --no-default-features --features tuirs-crossterm -- -D warnings
|
||||
- run: cargo clippy --examples --tests --no-default-features --features tuirs-crossterm,search -- -D warnings
|
||||
- run: cargo clippy --examples --tests --no-default-features --features tuirs-termion -- -D warnings
|
||||
- run: cargo clippy --examples --tests --no-default-features --features tuirs-termion,search -- -D warnings
|
||||
- run: cargo clippy --examples --tests --no-default-features --features tuirs-no-backend -- -D warnings
|
||||
- run: cargo clippy --examples --tests --no-default-features --features tuirs-no-backend,search -- -D warnings
|
||||
- run: cargo rustdoc --features=search,termwiz,termion,serde -p tui-textarea -- -D warnings
|
||||
cargo-doc:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@nightly
|
||||
- name: Run `cargo rustdoc` with same configuration as docs.rs
|
||||
run: |
|
||||
set -e
|
||||
md="$(cargo metadata --format-version=1 | jq '.packages[] | select(.name=="tui-textarea") | .metadata.docs.rs')"
|
||||
rustdoc_args="$(echo "$md" | jq -r '.["rustdoc-args"] | join(" ")') -D warnings"
|
||||
features="$(echo "$md" | jq -r '.features | join(",")')"
|
||||
- run: cargo fmt --check
|
||||
|
||||
set -x
|
||||
for target in $(echo "$md" | jq -r '.targets | join(" ")')
|
||||
do
|
||||
rustup target add "$target"
|
||||
cargo rustdoc -p tui-textarea "--features=$features" "--target=$target" -- $rustdoc_args
|
||||
done
|
||||
cargo-clippy:
|
||||
name: cargo clippy -- -D warnings
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
components: clippy
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- run: cargo clippy --all-targets -- -D warnings
|
||||
|
||||
cargo-check:
|
||||
name: cargo check
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- run: cargo check
|
||||
|
||||
cargo-test:
|
||||
name: cargo test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- run: cargo test
|
||||
|
||||
cross-platform:
|
||||
name: cross-platform default (${{ matrix.os }})
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- run: cargo check
|
||||
- run: cargo test
|
||||
|
||||
47
.github/workflows/release.yml
поставляемый
Обычный файл
47
.github/workflows/release.yml
поставляемый
Обычный файл
@@ -0,0 +1,47 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: "Cargo.toml version to release (for example 0.7.0)"
|
||||
required: true
|
||||
type: string
|
||||
publish:
|
||||
description: "Publish to crates.io (false runs dry validation only)"
|
||||
required: true
|
||||
default: false
|
||||
type: boolean
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
release:
|
||||
if: github.ref == 'refs/heads/main'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- name: Verify requested version matches Cargo.toml
|
||||
shell: bash
|
||||
run: |
|
||||
actual="$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -n1)"
|
||||
if [[ -z "$actual" ]]; then
|
||||
echo "Could not parse version from Cargo.toml"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "$actual" != "${{ inputs.version }}" ]]; then
|
||||
echo "Requested version ${{ inputs.version }} does not match Cargo.toml version $actual"
|
||||
exit 1
|
||||
fi
|
||||
- name: Validate package
|
||||
run: cargo package
|
||||
- name: Run full test suite
|
||||
run: cargo test
|
||||
- name: Publish to crates.io
|
||||
if: ${{ inputs.publish }}
|
||||
env:
|
||||
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
|
||||
run: cargo publish --locked --token "$CARGO_REGISTRY_TOKEN"
|
||||
Ссылка в новой задаче
Block a user