acrn-hypervisor/debian/debian_build.sh
szhen11 4fd7a4d9cf config_tools: add the dummy address to let anonymous trial of ACRN
update the debian/debian_build.sh script to let the gbp dch to get
the email address for debian/changlog from one of the 3 ways with
priority from high to low: using environment variable 'EMAIL' or
'DEBEMAIL' if existed(this is actually gbp dch required), user.email
in git config if existed(set user.email to environment variable
'EMAIL' or 'DEBEMAIL' for gbp dch), or using a dummy address
"projectacrn@gmail.com".

Tracked-On: #8262
Signed-off-by: szhen11 <shuang.zheng@intel.com>
2022-11-14 10:18:09 +08:00

124 lines
3.5 KiB
Bash
Executable File

#!/bin/bash
# Copyright (C) 2022 Intel Corporation.
# SPDX-License-Identifier: BSD-3-Clause
set -e
usage() {
echo "Usage: $0 [--board_list ACRN_BOARDLIST] [--scenario_list ACRN_SCENARIOLIST] [--config_path CONFIGDIRS] [--release n|y] [acrn | board_inspector | clean]"
echo "Optional arguments:"
echo " -h, --help show this help message and exit"
echo " -b, --board_list list the boards to build, seperated by blank; build all scanned boards in the config path if specified as \"\"; build the default boards in debian rules if not specified"
echo " -s, --scenario_list list the scenarios to build, seperated by blank; build all scanned scenarios in the config path if specified as \"\"; build the default scenarios in debian rules if not specified"
echo " -c, --config_path specify the config path for the board and scenario configuration files, default use misc/config_tools/data if not specified"
echo " -r, --release build debug version with n, release version with y; default defined in debian rules if not specified"
echo " acrn|board_inspector|clean specify the build target, default value is acrn if not specified"
echo "Examples: "
echo " $0"
echo " $0 -b nuc11tnbi5 -s shared"
echo " $0 -b \"nuc11tnbi5 tgl-vecow-spc-7100-Corei7\" -s \"shared hybrid\" -c misc/config_tools/data -r y"
echo " $0 -b \"\" -s shared"
echo " $0 board_inspector"
}
invalid() {
echo "ERROR: Unrecognized argument: $1" >&2
usage
exit 1
}
verify_cmd() {
command -v $@ >/dev/null 2>&1 || { echo >&2 "ERROR: $@ is not installed which is required for running this script. Aborting."; exit 1; }
}
verify_cmd readlink
verify_cmd debuild
verify_cmd "gbp dch"
POSITIONAL_ARGS=()
board_list="default"
scenario_list="default"
config_path="misc/config_tools/data"
release="default"
while [[ $# -gt 0 ]]; do
case $1 in
-b|--board_list)
board_list="$2"
shift 2
;;
-s|--scenario_list)
scenario_list="$2"
shift 2
;;
-c|--config_path)
config_path="$2"
shift 2
;;
-r|--release)
release="$2"
shift 2
;;
-h|--help)
usage
exit 0
;;
-*|--*)
invalid $1
;;
*)
POSITIONAL_ARGS+=("$1")
shift
;;
esac
done
set -- "${POSITIONAL_ARGS[@]}"
cmd="debuild"
if [ "$board_list" != "default" ]; then
echo "ACRN_BOARDLIST = ${board_list@Q}"
cmd="$cmd -eACRN_BOARDLIST=${board_list@Q}"
fi
if [ "$scenario_list" != "default" ]; then
echo "ACRN_SCENARIOLIST = ${scenario_list@Q}"
cmd="$cmd -eACRN_SCENARIOLIST=${scenario_list@Q}"
fi
cmd="$cmd -eCONFIGDIRS=${config_path@Q}"
echo "CONFIGDIRS = ${config_path@Q}"
if [ "$release" != "default" ]; then
echo "RELEASE = ${release@Q}"
if [ "$release" != "n" ] && [ "$release" != "y" ]; then
echo "ERROR: the release argument can only be n or y."
exit 1
fi
cmd="$cmd -eRELEASE=${release@Q}"
fi
if [ -z $1 ] || [ "$1" == "acrn" ]; then
cmd="$cmd -- binary"
elif [ "$1" == "board_inspector" ]; then
cmd="$cmd -- binary-indep"
elif [ "$1" == "clean" ]; then
cmd="$cmd -- clean"
fi
SCRIPT=$(readlink -f "$0")
SCRIPT_PATH=$(dirname "$SCRIPT")
cd $SCRIPT_PATH/../
source VERSION
rm -rf debian/changelog
if [ -z $EMAIL ] && [ -z $DEBEMAIL]; then
export DEBEMAIL=$(git config --get user.email)
if [ -z $DEBEMAIL ]; then
export DEBEMAIL="projectacrn@gmail.com"
fi
fi
gbp dch -S --git-log="-n 10" --id-length=10 --ignore-branch
sed -i "s/unknown/$MAJOR_VERSION.$MINOR_VERSION$EXTRA_VERSION/g" debian/changelog
echo $cmd
echo $cmd | bash -
cd -