diff --git a/Jenkinsfile b/Jenkinsfile index a8f4d7935..9a4a6d124 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,11 +9,43 @@ pipeline{ } stages{ stage("Maven Build"){ - steps { - withMaven { - sh './mvnw clean verify -B -Pci,generate-p2 -Dcbi.jarsigner.skip=false' + steps { + withMaven { + sh './mvnw clean verify -B -Pci,generate-p2 -Dcbi.jarsigner.skip=false' + } + } + } + stage("native-image") { + parallel { + stage("Linux native-image") { + agent { + label "linux" + } + steps { + sh "wget -O ./graalvm-linux.tar.gz https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java8-linux-amd64-20.2.0.tar.gz" + sh "[ -e ./graalvm-linux.tar.gz ] && tar -xzf ./graalvm-linux.tar.gz" + sh "./graalvm-*/bin/gu install native-image" + sh "JAVA_HOME=./graalvm-ce-java8-20.2.0 ./mvnw package -Pnative -DskipTests" + archiveArtifacts artifacts: 'org.eclipse.lemminx/target/lemminx-linux*', fingerprint: true + sh "sha256sum org.eclipse.lemminx/target/lemminx-linux* > lemminx-linux-hash" + archiveArtifacts artifacts: 'lemminx-linux-hash', fingerprint: false } } + stage("Windows native-image") { + agent { + label "windows" + } + steps { + powershell "Invoke-WebRequest https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-windows-amd64-20.2.0.zip -OutFile graalvm-windows.zip" + powershell "Expand-Archive graalvm-windows.zip" + powershell ".\\graalvm-windows\\graalvm-ce-java11-20.2.0\\bin\\gu install native-image" + bat "set JAVA_HOME=%WORKSPACE%\\graalvm-windows\\graalvm-ce-java11-20.2.0&& echo %JAVA_HOME% && \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat\" && .\\mvnw.cmd package -Pnative -DskipTests" + archiveArtifacts artifacts: 'org.eclipse.lemminx/target/*.exe', fingerprint: true + powershell "Get-FileHash org.eclipse.lemminx\\target\\*.exe | Select -ExpandProperty Hash > lemminx-windows-hash" + archiveArtifacts artifacts: 'lemminx-windows-hash', fingerprint: false + } + } + } } stage('Deploy to downloads.eclipse.org') { when {