From 5176b0cd0d2c9f8f96f32ee6bcd5d9cfb94e5d99 Mon Sep 17 00:00:00 2001 From: Michal Karm Babacek Date: Thu, 17 Dec 2020 14:12:56 +0100 Subject: [PATCH] Jenkins DSL for 20.1 branch --- jenkins/jobs/scripts/mandrel_linux_build.sh | 42 ++++++++++ .../jobs/scripts/mandrel_windows_build.bat | 76 +++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100755 jenkins/jobs/scripts/mandrel_linux_build.sh create mode 100644 jenkins/jobs/scripts/mandrel_windows_build.bat diff --git a/jenkins/jobs/scripts/mandrel_linux_build.sh b/jenkins/jobs/scripts/mandrel_linux_build.sh new file mode 100755 index 00000000..8b203dfb --- /dev/null +++ b/jenkins/jobs/scripts/mandrel_linux_build.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +pushd "${WORKSPACE}" || exit 1 +export MAVEN_REPO=${HOME}/.m2/repository +export MANDREL_REPO=${WORKSPACE}/mandrel +export JAVA_HOME=/usr/java/${OPENJDK} +export MX_HOME=${WORKSPACE}/mx +export PATH=${JAVA_HOME}/bin:${MX_HOME}:${PATH} +pushd mandrel +export MANDREL_VERSION="${MANDREL_VERSION_SUBSTRING} $( git log --pretty=format:%h -n1)" +export MANDREL_VERSION_UNTIL_SPACE="$( echo ${MANDREL_VERSION} | sed -e 's/\([^ ]*\).*/\1/;t' )" +export JAVA_VERSION="$(java --version | sed -e 's/.*build \([^) ]*\)).*/\1/;t;d' )" +export MANDREL_HOME=${WORKSPACE}/mandrel-java11-${MANDREL_VERSION_UNTIL_SPACE} +popd +${JAVA_HOME}/bin/java -ea build.java --maven-local-repository ${MAVEN_REPO} \ +--mandrel-repo ${MANDREL_REPO} --mx-home ${MX_HOME} \ +--mandrel-version ${MANDREL_VERSION} --mandrel-home ${MANDREL_HOME} \ +--archive-suffix tar.gz +TAR_NAME="$( ls mandrel-*.tar.gz )" +sha1sum ${TAR_NAME}>${TAR_NAME}.sha1 +sha256sum ${TAR_NAME}>${TAR_NAME}.sha256 +cat >./MANDREL.md <./Hello.java <^&1 ^| findstr /R "Runtime.*build "') do set JAVA_VERSION=%%g +set JAVA_VERSION=%JAVA_VERSION:~0,-1% +set MANDREL_HOME=%WORKSPACE%\mandrel-java11-%MANDREL_VERSION_UNTIL_SPACE% +popd + +echo XXX MANDREL_VERSION_SUBSTRING: %MANDREL_VERSION_SUBSTRING% +echo XXX MANDREL_VERSION: %MANDREL_VERSION% +echo XXX MANDREL_VERSION_UNTIL_SPACE: %MANDREL_VERSION_UNTIL_SPACE% +echo XXX JAVA_VERSION: %JAVA_VERSION% +echo XXX MANDREL_HOME: %MANDREL_HOME% +echo XXX MX_HOME: %MX_HOME% +echo XXX MAVEN_REPO: %MAVEN_REPO% +echo XXX MANDREL_REPO: %MANDREL_REPO% +echo XXX JAVA_HOME: %JAVA_HOME% + +call vcvars64 +IF NOT %ERRORLEVEL% == 0 ( exit 1 ) + +"%JAVA_HOME%\bin\java" -ea build.java --maven-local-repository "%MAVEN_REPO%" --mandrel-repo "%MANDREL_REPO%" --mx-home "%MX_HOME%" --mandrel-version "%MANDREL_VERSION%" --mandrel-home "%MANDREL_HOME%" --archive-suffix zip +IF NOT %ERRORLEVEL% == 0 ( exit 1 ) + +for /f "tokens=5" %%g in ('dir mandrel-*.zip ^| findstr /R mandrel-.*.zip') do set ZIP_NAME=%%g +powershell -c "$hash=(Get-FileHash %ZIP_NAME% -Algorithm SHA1).Hash;echo \"$hash %ZIP_NAME%\"">%ZIP_NAME%.sha1 +IF NOT %ERRORLEVEL% == 0 ( exit 1 ) + +powershell -c "$hash=(Get-FileHash %ZIP_NAME% -Algorithm SHA256).Hash;echo \"$hash %ZIP_NAME%\"">%ZIP_NAME%.sha256 +IF NOT %ERRORLEVEL% == 0 ( exit 1 ) + +( +echo This is a dev build of Mandrel from https://github.com/graalvm/mandrel. +echo Mandrel %MANDREL_VERSION% +echo OpenJDK used: %JAVA_VERSION% +) >MANDREL.md + +if not exist "%MANDREL_HOME%\bin\native-image.cmd" ( + echo "Cannot find native-image tool. Quitting..." + exit 1 +) else ( + echo "native-image.cmd is present, good." +) + +( +echo|set /p=" public class Hello {" +echo|set /p=" public static void main(String[] args) {" +echo|set /p=" System.out.println("Hello.");" +echo|set /p=" }" +echo|set /p=" }" +) >Hello.java + +set "JAVA_HOME=%MANDREL_HOME%" +set "PATH=%JAVA_HOME%\bin;%PATH%" +javac Hello.java +native-image Hello + +for /F "tokens=*" %%i in ('hello.exe') do set HELLO_OUT=%%i +if "%HELLO_OUT%" == "Hello." ( + echo Done +) else ( + echo Native image fail + exit 1 +)