From 6e92c274e03e6f5654b832bb293793f613f7ac8a Mon Sep 17 00:00:00 2001 From: degomme Date: Tue, 31 Jul 2018 17:39:16 +0200 Subject: [PATCH] add system detection for ci builds. Not really possible with cmake, so done by hand with help from https://unix.stackexchange.com/questions/6345/how-can-i-get-distribution-name-and-version-number-in-a-simple-shell-script This will help scripting the description of the slaves --- tools/jenkins/build.sh | 56 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/tools/jenkins/build.sh b/tools/jenkins/build.sh index d4a00073a7..3052b0e2b9 100755 --- a/tools/jenkins/build.sh +++ b/tools/jenkins/build.sh @@ -49,6 +49,62 @@ onoff() { #test -e /usr/include/libunwind.h || die 1 "I need libunwind to compile. Please fix your slave." #test -e /usr/include/valgrind/valgrind.h || die 1 "I need valgrind to compile. Please fix your slave." +if type lsb_release >/dev/null 2>&1; then + if [ -f /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe ]; then + #To identify the windows underneath the winbuntu + PATH="/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:$PATH" + major=$(powershell.exe -command "[environment]::OSVersion.Version.Major" | sed 's/\r//g') + build=$(powershell.exe -command "[environment]::OSVersion.Version.Build"| sed 's/\r//g') + os=Windows + ver="$major v$build - WSL $(lsb_release -sd)" + else + # linuxbase.org + os=$(lsb_release -si) + ver="$(lsb_release -sr) ($(lsb_release -sc))" + fi +elif [ -f /etc/lsb-release ]; then + # For some versions of Debian/Ubuntu without lsb_release command + . /etc/lsb-release + os=$DISTRIB_ID + ver=$DISTRIB_RELEASE +elif [ -f /etc/debian_version ]; then + # Older Debian/Ubuntu/etc. + os=Debian + ver=$(cat /etc/debian_version) +elif [ -f /etc/redhat-release ]; then + os="" + ver=$(cat /etc/redhat-release) +elif [ -f /usr/bin/sw_vers ]; then + os=$(sw_vers -producls /e tName) + ver=$(sw_vers -productVersion) +elif [ -f /bin/freebsd-version ]; then + os=$(uname -s) + ver=$(freebsd-version -u) +elif [ -f /etc/os-release ]; then + # freedesktop.org and systemd, put last as usually missing useful info + . /etc/os-release + os=$NAME + ver=$VERSION_ID +else + # Fall back to uname, e.g. "Linux ", also works for BSD, etc. + echo "fallback as OS name not found" + os=$(uname -s) + ver=$(uname -r) +fi +case $(uname -m) in +x86_64) + bits="64 bits" + ;; +i*86) + bits="32 bits" + ;; +*) + bits="" + ;; +esac +echo "OS Version : $os $ver $bits" + + build_mode="$1" echo "Build mode $build_mode on $(uname -np)" >&2 case "$build_mode" in -- 2.20.1