Add commit hash to dotnet

This commit is contained in:
Senthil 2016-04-28 17:59:12 -07:00
parent 6cd56257fc
commit 9f05d51ddb
6 changed files with 37 additions and 11 deletions

View file

@ -165,6 +165,7 @@ namespace Microsoft.DotNet.Cli.Build
// Run the build // Run the build
string rid = GetRuntimeId(); string rid = GetRuntimeId();
string corehostSrcDir = Path.Combine(c.BuildContext.BuildDirectory, "src", "corehost"); string corehostSrcDir = Path.Combine(c.BuildContext.BuildDirectory, "src", "corehost");
string commitHash = c.BuildContext.Get<string>("CommitHash");
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{ {
@ -177,6 +178,7 @@ namespace Microsoft.DotNet.Cli.Build
var baseSupportedRid = $"win7-{arch}"; var baseSupportedRid = $"win7-{arch}";
var cmakeHostPolicyVer = $"-DCLI_CMAKE_HOST_POLICY_VER:STRING={buildVersion.LatestHostPolicyVersion}"; var cmakeHostPolicyVer = $"-DCLI_CMAKE_HOST_POLICY_VER:STRING={buildVersion.LatestHostPolicyVersion}";
var cmakeBaseRid = $"-DCLI_CMAKE_PKG_RID:STRING={baseSupportedRid}"; var cmakeBaseRid = $"-DCLI_CMAKE_PKG_RID:STRING={baseSupportedRid}";
var cmakeCommitHash = $"-DCLI_CMAKE_COMMIT_HASH:STRING={commitHash}";
ExecIn(cmakeOut, "cmake", ExecIn(cmakeOut, "cmake",
corehostSrcDir, corehostSrcDir,
@ -184,6 +186,7 @@ namespace Microsoft.DotNet.Cli.Build
ridMacro, ridMacro,
cmakeHostPolicyVer, cmakeHostPolicyVer,
cmakeBaseRid, cmakeBaseRid,
cmakeCommitHash,
"-G", "-G",
visualStudio); visualStudio);
@ -217,7 +220,9 @@ namespace Microsoft.DotNet.Cli.Build
"--policyver", "--policyver",
buildVersion.LatestHostPolicyVersion, buildVersion.LatestHostPolicyVersion,
"--rid", "--rid",
rid); rid,
"--commithash",
commitHash);
// Copy the output out // Copy the output out
File.Copy(Path.Combine(cmakeOut, "cli", "dotnet"), Path.Combine(Dirs.CorehostLatest, "dotnet"), overwrite: true); File.Copy(Path.Combine(cmakeOut, "cli", "dotnet"), Path.Combine(Dirs.CorehostLatest, "dotnet"), overwrite: true);

View file

@ -27,12 +27,13 @@ init_distro_name_and_rid()
usage() usage()
{ {
echo "Usage: $0 --arch <Architecture> --rid <Runtime Identifier> --policyver <HostPolicy library version> [--xcompiler <Cross C++ Compiler>]" echo "Usage: $0 --arch <Architecture> --rid <Runtime Identifier> --policyver <HostPolicy library version> --commithash <Git commit hash> [--xcompiler <Cross C++ Compiler>]"
echo "" echo ""
echo "Options:" echo "Options:"
echo " --arch <Architecture> Target Architecture (amd64, x86, arm)" echo " --arch <Architecture> Target Architecture (amd64, x86, arm)"
echo " --rid <Runtime Identifier> Target Runtime Identifier" echo " --rid <Runtime Identifier> Target Runtime Identifier"
echo " --policyver <HostPolicy version> Version of the hostpolicy library" echo " --policyver <HostPolicy version> Version of the hostpolicy library"
echo " --commithash <Git commit hash> Current commit hash of the repo at build time"
echo " --xcompiler <Cross C++ Compiler> Cross Compiler when the target is arm" echo " --xcompiler <Cross C++ Compiler> Cross Compiler when the target is arm"
echo " e.g.) /usr/bin/arm-linux-gnueabi-g++-4.7" echo " e.g.) /usr/bin/arm-linux-gnueabi-g++-4.7"
@ -53,6 +54,7 @@ __build_arch=
__runtime_id= __runtime_id=
__policy_ver= __policy_ver=
__CrossBuild=0 __CrossBuild=0
__commit_hash=
while [ "$1" != "" ]; do while [ "$1" != "" ]; do
lowerI="$(echo $1 | awk '{print tolower($0)}')" lowerI="$(echo $1 | awk '{print tolower($0)}')"
@ -73,6 +75,10 @@ while [ "$1" != "" ]; do
shift shift
__policy_ver=$1 __policy_ver=$1
;; ;;
--commithash)
shift
__commit_hash=$1
;;
--xcompiler) --xcompiler)
shift shift
__CrossCompiler="$1" __CrossCompiler="$1"
@ -116,15 +122,20 @@ if [ -z $__rid_plat ]; then
exit -1 exit -1
fi fi
if [-z $__commit_hash ]; then
echo "Commit hash was not specified"
exit -1
fi
__build_arch_lowcase=$(echo "$__build_arch" | tr '[:upper:]' '[:lower:]') __build_arch_lowcase=$(echo "$__build_arch" | tr '[:upper:]' '[:lower:]')
__base_rid=$__rid_plat-$__build_arch_lowcase __base_rid=$__rid_plat-$__build_arch_lowcase
echo "Building Corehost from $DIR to $(pwd)" echo "Building Corehost from $DIR to $(pwd)"
set -x # turn on trace set -x # turn on trace
if [ $__CrossBuild == 1 ]; then if [ $__CrossBuild == 1 ]; then
cmake "$DIR" -G "Unix Makefiles" $__cmake_defines -DCLI_CMAKE_RUNTIME_ID:STRING=$__runtime_id -DCLI_CMAKE_HOST_POLICY_VER:STRING=$__policy_ver -DCMAKE_CXX_COMPILER="$__CrossCompiler" -DCLI_CMAKE_PKG_RID:STRING=$__base_rid cmake "$DIR" -G "Unix Makefiles" $__cmake_defines -DCLI_CMAKE_RUNTIME_ID:STRING=$__runtime_id -DCLI_CMAKE_HOST_POLICY_VER:STRING=$__policy_ver -DCMAKE_CXX_COMPILER="$__CrossCompiler" -DCLI_CMAKE_PKG_RID:STRING=$__base_rid -DCLI_CMAKE_COMMIT_HASH:STRING=$__commit_hash
else else
cmake "$DIR" -G "Unix Makefiles" $__cmake_defines -DCLI_CMAKE_RUNTIME_ID:STRING=$__runtime_id -DCLI_CMAKE_HOST_POLICY_VER:STRING=$__policy_ver -DCLI_CMAKE_PKG_RID:STRING=$__base_rid cmake "$DIR" -G "Unix Makefiles" $__cmake_defines -DCLI_CMAKE_RUNTIME_ID:STRING=$__runtime_id -DCLI_CMAKE_HOST_POLICY_VER:STRING=$__policy_ver -DCLI_CMAKE_PKG_RID:STRING=$__base_rid -DCLI_CMAKE_COMMIT_HASH:STRING=$__commit_hash
fi fi
set +x # turn off trace set +x # turn off trace
make make

View file

@ -147,6 +147,8 @@ bool hostpolicy_exists_in_svc(pal::string_t* resolved_dir)
SHARED_API int hostfxr_main(const int argc, const pal::char_t* argv[]) SHARED_API int hostfxr_main(const int argc, const pal::char_t* argv[])
{ {
trace::setup(); trace::setup();
trace::info(_X("--- Invoked hostfxr [commit hash: %s] main"), _STRINGIFY(REPO_COMMIT_HASH));
fx_muxer_t muxer; fx_muxer_t muxer;
return muxer.execute(argc, argv); return muxer.execute(argc, argv);

View file

@ -226,7 +226,8 @@ SHARED_API int corehost_main(const int argc, const pal::char_t* argv[])
{ {
if (trace::is_enabled()) if (trace::is_enabled())
{ {
trace::info(_X("--- Invoked policy [%s,%s,%s][%s] main = {"), trace::info(_X("--- Invoked hostpolicy [commit hash: %s] [%s,%s,%s][%s] main = {"),
_STRINGIFY(REPO_COMMIT_HASH),
_STRINGIFY(HOST_POLICY_PKG_NAME), _STRINGIFY(HOST_POLICY_PKG_NAME),
_STRINGIFY(HOST_POLICY_PKG_VER), _STRINGIFY(HOST_POLICY_PKG_VER),
_STRINGIFY(HOST_POLICY_PKG_REL_DIR), _STRINGIFY(HOST_POLICY_PKG_REL_DIR),

View file

@ -55,21 +55,28 @@ else()
message(FATAL_ERROR "Unknown target architecture") message(FATAL_ERROR "Unknown target architecture")
endif() endif()
if(${CLI_CMAKE_RUNTIME_ID} STREQUAL "") if("${CLI_CMAKE_RUNTIME_ID}" STREQUAL "")
message(FATAL_ERROR "Runtime ID not specified") message(FATAL_ERROR "Runtime ID not specified")
else() else()
add_definitions(-DTARGET_RUNTIME_ID="${CLI_CMAKE_RUNTIME_ID}") add_definitions(-DTARGET_RUNTIME_ID="${CLI_CMAKE_RUNTIME_ID}")
endif() endif()
if(${CLI_CMAKE_HOST_POLICY_VER} STREQUAL "") if("${CLI_CMAKE_HOST_POLICY_VER}" STREQUAL "")
message(FATAL_ERROR "Host policy version is not specified") message(FATAL_ERROR "Host policy version is not specified")
else() else()
add_definitions(-DHOST_POLICY_PKG_VER="${CLI_CMAKE_HOST_POLICY_VER}") add_definitions(-DHOST_POLICY_PKG_VER="${CLI_CMAKE_HOST_POLICY_VER}")
endif() endif()
if(${CLI_CMAKE_PKG_RID} STREQUAL "") if("${CLI_CMAKE_PKG_RID}" STREQUAL "")
message(FATAL_ERROR "A minimum supported package rid is not specified (ex: win7-x86 or ubuntu.14.04-x64, osx.10.10-x64, rhel.7-x64)") message(FATAL_ERROR "A minimum supported package rid is not specified (ex: win7-x86 or ubuntu.14.04-x64, osx.10.10-x64, rhel.7-x64)")
else()
add_definitions(-DHOST_POLICY_PKG_NAME="runtime.${CLI_CMAKE_PKG_RID}.Microsoft.NETCore.DotNetHostPolicy")
add_definitions(-DHOST_POLICY_PKG_REL_DIR="runtimes/${CLI_CMAKE_PKG_RID}/native")
endif()
if("${CLI_CMAKE_COMMIT_HASH}" STREQUAL "")
message(FATAL_ERROR "Commit hash needs to be specified to build the host")
else()
add_definitions(-DREPO_COMMIT_HASH="${CLI_CMAKE_COMMIT_HASH}")
endif() endif()
add_definitions(-DHOST_POLICY_PKG_NAME="runtime.${CLI_CMAKE_PKG_RID}.Microsoft.NETCore.DotNetHostPolicy")
add_definitions(-DHOST_POLICY_PKG_REL_DIR="runtimes/${CLI_CMAKE_PKG_RID}/native")

View file

@ -96,7 +96,7 @@ int main(const int argc, const pal::char_t* argv[])
if (trace::is_enabled()) if (trace::is_enabled())
{ {
trace::info(_X("--- Invoked host main = {")); trace::info(_X("--- Invoked dotnet [commit hash: %s] main = {"), _STRINGIFY(REPO_COMMIT_HASH));
for (int i = 0; i < argc; ++i) for (int i = 0; i < argc; ++i)
{ {
trace::info(_X("%s"), argv[i]); trace::info(_X("%s"), argv[i]);