Compare commits
1 commit
Author | SHA1 | Date | |
---|---|---|---|
17584cba0f |
5 changed files with 81 additions and 87 deletions
|
@ -1,52 +0,0 @@
|
|||
name: Rust
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: ["next"]
|
||||
pull_request:
|
||||
branches: ["main"]
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: docker
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
toolchain:
|
||||
- name: stable
|
||||
- name: nightly
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Format
|
||||
uses: https://git.kemitix.net/kemitix/rust@v2.3.0
|
||||
with:
|
||||
args: ${{ matrix.toolchain.name }} cargo fmt --all -- --check
|
||||
|
||||
# - name: Machete
|
||||
# uses: https://github.com/bnjbvr/cargo-machete@v0.6.2
|
||||
|
||||
- name: Clippy
|
||||
uses: https://git.kemitix.net/kemitix/rust@v2.3.0
|
||||
with:
|
||||
args: ${{ matrix.toolchain.name }} cargo clippy
|
||||
|
||||
- name: Build
|
||||
uses: https://git.kemitix.net/kemitix/rust@v2.3.0
|
||||
with:
|
||||
args: ${{ matrix.toolchain.name }} cargo build
|
||||
|
||||
- name: Test
|
||||
uses: https://git.kemitix.net/kemitix/rust@v2.3.0
|
||||
with:
|
||||
args: ${{ matrix.toolchain.name }} cargo test --no-fail-fast
|
||||
|
||||
- name: Integration
|
||||
uses: https://git.kemitix.net/kemitix/rust@v2.3.0
|
||||
with:
|
||||
args: ./test.sh
|
|
@ -1,5 +1,5 @@
|
|||
variables:
|
||||
- &rust_image "docker.io/rust:1.82.0"
|
||||
- &rust_image "docker.io/rust:1.76"
|
||||
- &slow_check_paths
|
||||
- path:
|
||||
# rust source code
|
||||
|
@ -14,11 +14,22 @@ variables:
|
|||
- ".woodpecker.yml"
|
||||
|
||||
steps:
|
||||
|
||||
toml_fmt:
|
||||
image: docker.io/tamasfe/taplo:0.9.3
|
||||
image: docker.io/tamasfe/taplo:0.8.1
|
||||
commands:
|
||||
- taplo format --check
|
||||
|
||||
|
||||
cargo_fmt:
|
||||
image: docker.io/rustlang/rust:nightly
|
||||
environment:
|
||||
# store cargo data in repo folder so that it gets cached between steps
|
||||
CARGO_HOME: .cargo_home
|
||||
commands:
|
||||
- rustup component add rustfmt
|
||||
- cargo fmt --check
|
||||
|
||||
cargo_machete:
|
||||
image: *rust_image
|
||||
commands:
|
||||
|
@ -36,6 +47,46 @@ steps:
|
|||
- IGNORED=$(git ls-files --cached -i --exclude-standard)
|
||||
- if [[ "$IGNORED" ]]; then echo "Ignored files present:\n$IGNORED\n"; exit 1; fi
|
||||
|
||||
check:
|
||||
image: *rust_image
|
||||
environment:
|
||||
CARGO_HOME: .cargo_home
|
||||
commands:
|
||||
- cargo check
|
||||
when: *slow_check_paths
|
||||
|
||||
cargo_clippy:
|
||||
image: *rust_image
|
||||
environment:
|
||||
CARGO_HOME: .cargo_home
|
||||
commands:
|
||||
- rustup component add clippy
|
||||
- cargo clippy --tests --all-targets -- -D warnings
|
||||
when: *slow_check_paths
|
||||
|
||||
cargo_build:
|
||||
image: *rust_image
|
||||
environment:
|
||||
CARGO_HOME: .cargo_home
|
||||
commands:
|
||||
- cargo build
|
||||
- mv target/debug/skip target/skip
|
||||
when: *slow_check_paths
|
||||
|
||||
cargo_test:
|
||||
image: *rust_image
|
||||
environment:
|
||||
RUST_BACKTRACE: "1"
|
||||
CARGO_HOME: .cargo_home
|
||||
commands:
|
||||
- cargo test --no-fail-fast
|
||||
when: *slow_check_paths
|
||||
|
||||
integration_test:
|
||||
image: *rust_image
|
||||
commands:
|
||||
- ./test.sh
|
||||
|
||||
publish_to_crates_io:
|
||||
image: *rust_image
|
||||
commands:
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Skip part of a file.
|
||||
|
||||
As `head` will show the top of a file up-to a number of line,
|
||||
As `head` will show the top of a file after a number of line,
|
||||
so `skip` will do the opposite, and not show the top of the file,
|
||||
but will show the rest.
|
||||
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": ["config:recommended"],
|
||||
"packageRules": [
|
||||
{
|
||||
"matchManagers": ["cargo"],
|
||||
"rangeStrategy": "replace"
|
||||
}
|
||||
"extends": [
|
||||
"config:recommended"
|
||||
]
|
||||
}
|
||||
|
|
51
test.sh
51
test.sh
|
@ -5,38 +5,37 @@ set -e
|
|||
echo "PWD: $PWD"
|
||||
ls -l
|
||||
ls -l target
|
||||
SKIP="./target/debug/skip"
|
||||
SKIP="./target/skip"
|
||||
DIFF="diff -u --color"
|
||||
|
||||
if test ! -x $SKIP; then
|
||||
echo "File missing: $SKIP - try 'cargo build'"
|
||||
exit 1
|
||||
if test ! -x $SKIP ; then
|
||||
echo "File missing: $SKIP - try 'cargo build'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "> skip a line when reading from stdin"
|
||||
INPUT=$(
|
||||
cat <<EOF
|
||||
INPUT=$(cat<<EOF
|
||||
line 1
|
||||
line 2
|
||||
EOF
|
||||
)
|
||||
echo "line 2" >test.expect
|
||||
echo "$INPUT" | $SKIP 1 >test.out
|
||||
echo "line 2" > test.expect
|
||||
echo "$INPUT" | $SKIP 1 > test.out
|
||||
$DIFF test.expect test.out
|
||||
rm test.expect test.out
|
||||
|
||||
echo "> skip a line when reading from a file"
|
||||
cat <<EOF >test.in
|
||||
cat<<EOF > test.in
|
||||
line 1
|
||||
line 2
|
||||
EOF
|
||||
echo "line 2" >test.expect
|
||||
$SKIP 1 test.in >test.out
|
||||
echo "line 2" > test.expect
|
||||
$SKIP 1 test.in > test.out
|
||||
$DIFF test.expect test.out
|
||||
rm test.expect test.out
|
||||
|
||||
echo "> skip until 2 matching lines seen"
|
||||
cat <<EOF >test.in
|
||||
cat<<EOF > test.in
|
||||
alpha
|
||||
beta
|
||||
alpha
|
||||
|
@ -44,17 +43,17 @@ alpha
|
|||
gamma
|
||||
alpha
|
||||
EOF
|
||||
cat <<EOF >test.expect
|
||||
cat<<EOF > test.expect
|
||||
alpha
|
||||
gamma
|
||||
alpha
|
||||
EOF
|
||||
$SKIP 2 test.in --line alpha >test.out
|
||||
$SKIP 2 test.in --line alpha > test.out
|
||||
$DIFF test.expect test.out
|
||||
rm test.in test.expect test.out
|
||||
|
||||
echo "> skip lines until 2 tokens seen"
|
||||
cat <<EOF >test.in
|
||||
cat<<EOF > test.in
|
||||
Lorem ipsum dolor sit amet,
|
||||
consectetur adipiscing elit,
|
||||
sed do eiusmod tempor incididunt
|
||||
|
@ -64,18 +63,18 @@ quis nostrud exercitation ullamco
|
|||
laboris nisi ut aliquip ex ea
|
||||
commodo consequat.
|
||||
EOF
|
||||
cat <<EOF >test.expect
|
||||
cat<<EOF > test.expect
|
||||
Ut enim ad minim veniam,
|
||||
quis nostrud exercitation ullamco
|
||||
laboris nisi ut aliquip ex ea
|
||||
commodo consequat.
|
||||
EOF
|
||||
$SKIP 2 test.in --token dolor >test.out
|
||||
$SKIP 2 test.in --token dolor > test.out
|
||||
$DIFF test.expect test.out
|
||||
rm test.in test.expect test.out
|
||||
|
||||
echo "> handle unknown parameter with simple error message"
|
||||
cat <<EOF >test.expect.err
|
||||
cat<<EOF > test.expect.err
|
||||
error: unexpected argument '--foo' found
|
||||
|
||||
tip: to pass '--foo' as a value, use '-- --foo'
|
||||
|
@ -84,17 +83,17 @@ Usage: skip [OPTIONS] <LINES> [FILE]
|
|||
|
||||
For more information, try '--help'.
|
||||
EOF
|
||||
cat <<EOF >test.expect
|
||||
cat<<EOF > test.expect
|
||||
EOF
|
||||
touch test.out test.err
|
||||
$SKIP --foo >test.out 2>test.err || true
|
||||
$SKIP --foo > test.out 2> test.err || true
|
||||
$DIFF test.expect test.out
|
||||
$DIFF test.expect.err test.err
|
||||
rm test.expect test.out
|
||||
rm test.expect.err test.err
|
||||
|
||||
echo "> handle ignore-extra when token is missing"
|
||||
cat <<EOF >test.expect.err
|
||||
cat<<EOF > test.expect.err
|
||||
error: the following required arguments were not provided:
|
||||
--token <TOKEN>
|
||||
<LINES>
|
||||
|
@ -103,17 +102,17 @@ Usage: skip --ignore-extras --token <TOKEN> <LINES> [FILE]
|
|||
|
||||
For more information, try '--help'.
|
||||
EOF
|
||||
cat <<EOF >test.expect
|
||||
cat<<EOF > test.expect
|
||||
EOF
|
||||
touch test.out test.err
|
||||
$SKIP --ignore-extras >test.out 2>test.err || true
|
||||
$SKIP --ignore-extras > test.out 2> test.err || true
|
||||
$DIFF test.expect test.out
|
||||
$DIFF test.expect.err test.err
|
||||
rm test.expect test.out
|
||||
rm test.expect.err test.err
|
||||
|
||||
echo "> skip lines until 4 tokens seen - ignored extra tokens on same line"
|
||||
cat <<EOF >test.in
|
||||
cat<<EOF > test.in
|
||||
Lorem ipsum dolor sit amet,
|
||||
consectetur adipiscing elit,
|
||||
sed do eiusmod tempor incididunt
|
||||
|
@ -123,12 +122,12 @@ quis nostrud exercitation ullamco
|
|||
laboris nisi ut aliquip ex ea
|
||||
commodo consequat.
|
||||
EOF
|
||||
cat <<EOF >test.expect
|
||||
cat<<EOF > test.expect
|
||||
quis nostrud exercitation ullamco
|
||||
laboris nisi ut aliquip ex ea
|
||||
commodo consequat.
|
||||
EOF
|
||||
$SKIP 4 test.in --token m --ignore-extras >test.out
|
||||
$SKIP 4 test.in --token m --ignore-extras > test.out
|
||||
$DIFF test.expect test.out
|
||||
rm test.in test.expect test.out
|
||||
|
||||
|
|
Loading…
Reference in a new issue