ci: shellcheck checks

This commit is contained in:
Jose Storopoli 2024-05-11 13:02:59 +00:00
parent 0d627326ce
commit 021bea89bb
No known key found for this signature in database
GPG Key ID: 01BE853A206518CC
17 changed files with 56 additions and 14 deletions

15
.github/workflows/shellcheck.yml vendored Normal file
View File

@ -0,0 +1,15 @@
name: Shellcheck
on:
pull_request:
branches:
- master
jobs:
shellcheck:
name: Shellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@2.0.0
env:
SHELLCHECK_OPTS: -x # allow outside sources

View File

@ -1,4 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# disable verify unused vars, despite the fact that they are used when sourced
# shellcheck disable=SC2034
# Test all these features with "std" enabled. # Test all these features with "std" enabled.
FEATURES_WITH_STD="" FEATURES_WITH_STD=""

View File

@ -1,4 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# disable verify unused vars, despite the fact that they are used when sourced
# shellcheck disable=SC2034
# Test all these features with "std" enabled. # Test all these features with "std" enabled.
FEATURES_WITH_STD="rand-std serde secp-recovery bitcoinconsensus-std base64 ordered" FEATURES_WITH_STD="rand-std serde secp-recovery bitcoinconsensus-std base64 ordered"

View File

@ -1,2 +1,4 @@
# we don't want shebangs in env.sh, disable shellcheck warning
# shellcheck disable=SC2148
export RUSTFLAGS="-C link-arg=-Tlink.x" export RUSTFLAGS="-C link-arg=-Tlink.x"
export CARGO_TARGET_THUMBV7M_NONE_EABI_RUNNER="qemu-system-arm -cpu cortex-m3 -machine mps2-an385 -nographic -semihosting-config enable=on,target=native -kernel" export CARGO_TARGET_THUMBV7M_NONE_EABI_RUNNER="qemu-system-arm -cpu cortex-m3 -machine mps2-an385 -nographic -semihosting-config enable=on,target=native -kernel"

View File

@ -1,4 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# disable verify unused vars, despite the fact that they are used when sourced
# shellcheck disable=SC2034
# Crates in this workspace to test (note "fuzz" is only built not tested). # Crates in this workspace to test (note "fuzz" is only built not tested).
CRATES=("base58" "bitcoin" "fuzz" "hashes" "internals" "io" "units") CRATES=("base58" "bitcoin" "fuzz" "hashes" "internals" "io" "units")

View File

@ -20,7 +20,7 @@ fi
excluded_crates="fuzz|dep_test" excluded_crates="fuzz|dep_test"
CRATES="`cd "$SCAN_DIR" && cargo metadata --no-deps --format-version 1 | jq -j -r '.packages | map(.manifest_path | rtrimstr("/Cargo.toml") | ltrimstr("'$PWD'/")) | join(" ")'`" CRATES="$(cd "$SCAN_DIR" && cargo metadata --no-deps --format-version 1 | jq -j -r '.packages | map(.manifest_path | rtrimstr("/Cargo.toml") | ltrimstr("'"$PWD"'/")) | join(" ")')"
for crate in $CRATES; for crate in $CRATES;
do do
@ -29,7 +29,9 @@ do
continue continue
fi fi
echo "C-$crate:" >> "$config" {
echo " - changed-files:" >> "$config" echo "C-$crate:"
echo " - any-glob-to-any-file: $crate/**" >> "$config" echo " - changed-files:"
echo " - any-glob-to-any-file: $crate/**"
} >> "$config"
done done

View File

@ -28,7 +28,7 @@ main () {
# preparation for releasing the crate. # preparation for releasing the crate.
release_changes() { release_changes() {
local crate=$1 local crate=$1
git log --patch --reverse master.. -- $crate/Cargo.toml | grep version git log --patch --reverse master.. -- "$crate"/Cargo.toml | grep version
} }
# Do a dry run publish to crates.io using the correct package name for crate ($1). # Do a dry run publish to crates.io using the correct package name for crate ($1).
@ -47,4 +47,4 @@ publish_dry_run() {
# #
# Main script. # Main script.
# #
main $@ main "$@"

View File

@ -4,6 +4,8 @@
# #
# Not to be confused with the per crate `test_vars.sh` used by # Not to be confused with the per crate `test_vars.sh` used by
# `rust-bitcoin-maintainer-tools-run_task.sh`. # `rust-bitcoin-maintainer-tools-run_task.sh`.
# disable verify unused vars, despite the fact that they are used when sourced
# shellcheck disable=SC2034
CRATES="`cargo metadata --no-deps --format-version 1 | jq -j -r '.packages | map(.manifest_path | rtrimstr("/Cargo.toml") | ltrimstr("'$PWD'/")) | join(" ")'`" CRATES="$(cargo metadata --no-deps --format-version 1 | jq -j -r '.packages | map(.manifest_path | rtrimstr("/Cargo.toml") | ltrimstr("'"$PWD"'/")) | join(" ")')"
DEPS="recent minimal" DEPS="recent minimal"

View File

@ -8,7 +8,8 @@
set -euo pipefail set -euo pipefail
REPO_DIR=$(git rev-parse --show-toplevel) REPO_DIR=$(git rev-parse --show-toplevel)
# shellcheck source=./fuzz-util.sh # can't find the file because of the ENV var
# shellcheck source=/dev/null
source "$REPO_DIR/fuzz/fuzz-util.sh" source "$REPO_DIR/fuzz/fuzz-util.sh"
while : while :

View File

@ -3,7 +3,8 @@ set -euox pipefail
REPO_DIR=$(git rev-parse --show-toplevel) REPO_DIR=$(git rev-parse --show-toplevel)
# shellcheck source=./fuzz-util.sh # can't find the file because of the ENV var
# shellcheck source=/dev/null
source "$REPO_DIR/fuzz/fuzz-util.sh" source "$REPO_DIR/fuzz/fuzz-util.sh"
# Check that input files are correct Windows file names # Check that input files are correct Windows file names

View File

@ -4,7 +4,8 @@ set -euo pipefail
REPO_DIR=$(git rev-parse --show-toplevel) REPO_DIR=$(git rev-parse --show-toplevel)
# shellcheck source=./fuzz-util.sh # can't find the file because of the ENV var
# shellcheck source=/dev/null
source "$REPO_DIR/fuzz/fuzz-util.sh" source "$REPO_DIR/fuzz/fuzz-util.sh"
# 1. Generate fuzz/Cargo.toml # 1. Generate fuzz/Cargo.toml

View File

@ -21,11 +21,13 @@ exec 1>&2
# Cross platform projects tend to avoid non-ASCII filenames; prevent # Cross platform projects tend to avoid non-ASCII filenames; prevent
# them from being added to the repository. We exploit the fact that the # them from being added to the repository. We exploit the fact that the
# printable range starts at the space character and ends with tilde. # printable range starts at the space character and ends with tilde.
# disable the check to quoting the $(...) command
# shellcheck disable=SC2046
if [ "$allownonascii" != "true" ] && if [ "$allownonascii" != "true" ] &&
# Note that the use of brackets around a tr range is ok here, (it's # Note that the use of brackets around a tr range is ok here, (it's
# even required, for portability to Solaris 10's /usr/bin/tr), since # even required, for portability to Solaris 10's /usr/bin/tr), since
# the square bracket bytes happen to fall in the designated range. # the square bracket bytes happen to fall in the designated range.
test $(git diff --cached --name-only --diff-filter=A -z $against | test $(git diff --cached --name-only --diff-filter=A -z "$against" |
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
then then
cat <<\EOF cat <<\EOF
@ -43,7 +45,9 @@ EOF
fi fi
# If there are whitespace errors, print the offending file names and fail. # If there are whitespace errors, print the offending file names and fail.
git diff-index --check --cached $against -- || exit 1 git diff-index --check --cached "$against" -- || exit 1
# Check that code lints cleanly. # Check that code lints cleanly.
# disable the check to quoting the $(...) command
# shellcheck disable=SC2046
cargo +$(cat ./nightly-version) clippy --workspace --all-targets --all-features -- --deny warnings || exit 1 cargo +$(cat ./nightly-version) clippy --workspace --all-targets --all-features -- --deny warnings || exit 1

View File

@ -1,4 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# disable verify unused vars, despite the fact that they are used when sourced
# shellcheck disable=SC2034
# Test all these features with "std" enabled. # Test all these features with "std" enabled.
FEATURES_WITH_STD="io serde small-hash schemars" FEATURES_WITH_STD="io serde small-hash schemars"

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash # we don't want shebangs in env.sh, disable shellcheck warning
# shellcheck disable=SC2148
export RUSTFLAGS="-C link-arg=-Tlink.x" export RUSTFLAGS="-C link-arg=-Tlink.x"
export CARGO_TARGET_THUMBV7M_NONE_EABI_RUNNER="qemu-system-arm -cpu cortex-m3 -machine mps2-an385 -nographic -semihosting-config enable=on,target=native -kernel" export CARGO_TARGET_THUMBV7M_NONE_EABI_RUNNER="qemu-system-arm -cpu cortex-m3 -machine mps2-an385 -nographic -semihosting-config enable=on,target=native -kernel"

View File

@ -1,4 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# disable verify unused vars, despite the fact that they are used when sourced
# shellcheck disable=SC2034
# Test all these features with "std" enabled. # Test all these features with "std" enabled.
FEATURES_WITH_STD="serde" FEATURES_WITH_STD="serde"

View File

@ -1,4 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# disable verify unused vars, despite the fact that they are used when sourced
# shellcheck disable=SC2034
# Test all these features with "std" enabled. # Test all these features with "std" enabled.
FEATURES_WITH_STD="" FEATURES_WITH_STD=""

View File

@ -1,4 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# disable verify unused vars, despite the fact that they are used when sourced
# shellcheck disable=SC2034
# Test all these features with "std" enabled. # Test all these features with "std" enabled.
FEATURES_WITH_STD="serde" FEATURES_WITH_STD="serde"