mirror of
https://git.tukaani.org/xz.git
synced 2024-04-04 12:36:23 +02:00
CI/CD: Add new -p (PHASE) argument to ci_build.sh
The new PHASE argument can be build, test, or all. all is the default. This way, the CI/CD script can differentiate between the build and test phases to make it easier to track down errors when they happen.
This commit is contained in:
parent
6fd39664de
commit
4de35fd6b5
1 changed files with 67 additions and 55 deletions
|
@ -16,7 +16,7 @@
|
|||
|
||||
set -e
|
||||
|
||||
USAGE="Usage: $0 -b [autotools|cmake] -c [crc32|crc64|sha256] -d [encoders,decoders,bcj,delta,threads] -l [destdir] -s [srcdir]"
|
||||
USAGE="Usage: $0 -b [autotools|cmake] -c [crc32|crc64|sha256] -d [encoders|decoders|bcj|delta|threads] -l [destdir] -s [srcdir] -p [all|build|test]"
|
||||
|
||||
# Absolute path of script directory
|
||||
ABS_DIR=$(cd -- "$(dirname -- "$0")" && pwd)
|
||||
|
@ -31,9 +31,10 @@ DECODERS="y"
|
|||
THREADS="y"
|
||||
SRC_DIR="$ABS_DIR/../"
|
||||
DEST_DIR="$SRC_DIR/../xz_build"
|
||||
PHASE="all"
|
||||
|
||||
# Parse arguments
|
||||
while getopts b:c:d:l:s: opt; do
|
||||
while getopts b:c:d:l:s:p: opt; do
|
||||
# b option can have either value "autotools" OR "cmake"
|
||||
case ${opt} in
|
||||
b)
|
||||
|
@ -74,9 +75,12 @@ while getopts b:c:d:l:s: opt; do
|
|||
;;
|
||||
s) SRC_DIR="$OPTARG"
|
||||
;;
|
||||
p) PHASE="$OPTARG"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$PHASE" = "all" ] || [ "$PHASE" = "build" ]; then
|
||||
# Build based on arguments
|
||||
mkdir -p "$DEST_DIR"
|
||||
case $BUILD_SYSTEM in
|
||||
|
@ -124,18 +128,26 @@ case $BUILD_SYSTEM in
|
|||
|
||||
# Build the project
|
||||
make
|
||||
|
||||
# Run the tests
|
||||
make check
|
||||
;;
|
||||
|
||||
cmake)
|
||||
# CMake currently does not support disabling encoders, decoders,
|
||||
# threading, or check types. For now, just run the full build.
|
||||
cd "$DEST_DIR"
|
||||
cmake "$SRC_DIR/CMakeLists.txt" -B "$DEST_DIR"
|
||||
make
|
||||
make test
|
||||
;;
|
||||
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "$PHASE" = "all" ] || [ "$PHASE" = "test" ]; then
|
||||
case $BUILD_SYSTEM in
|
||||
autotools)
|
||||
cd "$DEST_DIR"
|
||||
make check
|
||||
;;
|
||||
cmake)
|
||||
cd "$DEST_DIR"
|
||||
make "test"
|
||||
;;
|
||||
esac
|
||||
fi
|
Loading…
Reference in a new issue