ci: test build outputs
This modifies CI to check that we generate completion files and a man page. We also enable tests on arm.
This commit is contained in:
47
ci/script.sh
47
ci/script.sh
@@ -7,14 +7,49 @@ set -ex
|
||||
. "$(dirname $0)/utils.sh"
|
||||
|
||||
main() {
|
||||
# disable_cross_doctests
|
||||
# Travis sometimes caches the target directory, which makes testing the
|
||||
# output of cargo a little trickier. So just wipe it.
|
||||
cargo clean
|
||||
# Test a normal debug build.
|
||||
cargo build --target "${TARGET}" --verbose --all
|
||||
if [ "$(architecture)" = "amd64" ] || [ "$(architecture)" = "i386" ]; then
|
||||
cargo test --target "${TARGET}" --verbose --all
|
||||
"$( dirname "${0}" )/test_complete.sh"
|
||||
fi
|
||||
|
||||
# Show the output of build.rs stderr.
|
||||
set +x
|
||||
find ./target/"$TARGET"/debug -name stderr | while read stderr; do
|
||||
if [ -s "$stderr" ]; then
|
||||
echo "===== $stderr ====="
|
||||
cat "$stderr"
|
||||
echo "====="
|
||||
fi
|
||||
done
|
||||
set -x
|
||||
|
||||
# sanity check the file type
|
||||
file target/$TARGET/debug/rg
|
||||
file target/"$TARGET"/debug/rg
|
||||
|
||||
# Apparently tests don't work on arm, so just bail now. I guess we provide
|
||||
# ARM releases on a best effort basis?
|
||||
if is_arm; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Test that zsh completions are in sync with ripgrep's actual args.
|
||||
"$(dirname "${0}")/test_complete.sh"
|
||||
|
||||
# Check that we've generated man page and other shell completions.
|
||||
find ./target/"$TARGET"/debug/build/ripgrep-* -name 'out' | \
|
||||
while read outdir; do
|
||||
file "$outdir/rg.bash"
|
||||
file "$outdir/rg.fish"
|
||||
file "$outdir/_rg.ps1"
|
||||
# man page requires asciidoc, and we only install it on Linux x86.
|
||||
if is_linux; then
|
||||
file "$outdir/rg.1"
|
||||
fi
|
||||
done
|
||||
|
||||
# Run tests for ripgrep and all sub-crates.
|
||||
cargo test --target "${TARGET}" --verbose --all
|
||||
}
|
||||
|
||||
main
|
||||
|
||||
Reference in New Issue
Block a user