Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMickael Istria2021-07-09 09:34:01 -0400
committerMickael Istria2021-07-09 09:34:01 -0400
commit73585e91400d1f94a7b19e8bd63ec8d1905e7d3d (patch)
tree1fd0b8aa816f7b11690f60633f0353fdf21a8fe0
parentff1ad4110bae66daa12ae7d59c487214a91a1bd3 (diff)
downloadeclipse.platform.swt-refa/for/master.tar.gz
eclipse.platform.swt-refa/for/master.tar.xz
eclipse.platform.swt-refa/for/master.zip
Bug 574667 - Use Jenkins multibranch pipeline based onrefa/for/master
Jenkinsfile+Gerrit Change-Id: I8f04ca9518b65bdf2e3c03fcc28f7f59586d938f
-rw-r--r--Jenkinsfile150
1 files changed, 150 insertions, 0 deletions
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000000..11bbb0619d
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,150 @@
+pipeline {
+ options {
+ timeout(time: 90, unit: 'MINUTES')
+ buildDiscarder(logRotator(numToKeepStr:'5'))
+ }
+ agent {
+ kubernetes {
+ label 'swtbuild-pod'
+ defaultContainer 'container'
+ yaml """
+apiVersion: v1
+kind: Pod
+spec:
+ containers:
+ - name: jnlp
+ resources:
+ requests:
+ memory: "512Mi"
+ cpu: "100m"
+ limits:
+ memory: "512Mi"
+ cpu: "500m"
+ - name: container
+ image: akurtakov/swtbuild@sha256:2cd3dfdea1f250597c9e3797512953c03e2182344e86976c1b60117c5dd36a9e
+ tty: true
+ command: [ "uid_entrypoint", "cat" ]
+ resources:
+ requests:
+ memory: "4Gi"
+ cpu: "1"
+ limits:
+ memory: "4Gi"
+ cpu: "1"
+ volumeMounts:
+ - name: "settings-xml"
+ mountPath: "/home/jenkins/.m2/settings.xml"
+ subPath: "settings.xml"
+ readOnly: true
+ - name: "toolchains-xml"
+ mountPath: "/home/jenkins/.m2/toolchains.xml"
+ subPath: "toolchains.xml"
+ readOnly: true
+ - name: "settings-security-xml"
+ mountPath: "/home/jenkins/.m2/settings-security.xml"
+ subPath: "settings-security.xml"
+ readOnly: true
+ - name: m2-repo
+ mountPath: /home/jenkins/.m2/repository
+ - name: "tools"
+ mountPath: "/opt/tools"
+ volumes:
+ - name: settings-xml
+ secret:
+ secretName: m2-secret-dir
+ items:
+ - key: settings.xml
+ path: settings.xml
+ - name: toolchains-xml
+ configMap:
+ name: m2-dir
+ items:
+ - key: toolchains.xml
+ path: toolchains.xml
+ - name: settings-security-xml
+ secret:
+ secretName: m2-secret-dir
+ items:
+ - key: settings-security.xml
+ path: settings-security.xml
+ - name: m2-repo
+ emptyDir: {}
+ - name: tools
+ persistentVolumeClaim:
+ claimName: tools-claim-jiro-platform
+"""
+ }
+ }
+ environment {
+ MAVEN_OPTS = "-Xmx4G"
+ }
+ stages {
+ stage('Prepare-environment') {
+ steps {
+ container('container') {
+ sh 'mutter --replace --sm-disable &'
+ dir ('eclipse.platform.swt') {
+ checkout([$class: 'GitSCM', branches: [[name: 'FETCH_HEAD']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CloneOption', timeout: 120]], submoduleCfg: [], userRemoteConfigs: [[refspec: '${GERRIT_REFSPEC}', url: 'https://git.eclipse.org/r/platform/eclipse.platform.swt.git']]])
+ }
+ dir ('eclipse.platform.swt.binaries') {
+ checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CloneOption', timeout: 120]], submoduleCfg: [], userRemoteConfigs: [[url: 'https://git.eclipse.org/r/platform/eclipse.platform.swt.binaries.git']]])
+ }
+ }
+ }
+ }
+ stage('Build') {
+ steps {
+ container('container') {
+ wrap([$class: 'Xvnc', useXauthority: true]) {
+ withEnv(["JAVA_HOME=${ tool 'openjdk-jdk11-latest' }"]) {
+ dir ('eclipse.platform.swt.binaries') {
+ sh '/opt/tools/apache-maven/latest/bin/mvn --batch-mode -Pbuild-individual-bundles -DforceContextQualifier=zzz -Dnative=gtk.linux.x86_64 -DskipJni -DskipRust -Dcompare-version-with-baselines.skip=true -Dmaven.compiler.failOnWarning=true install '
+ }
+ dir ('eclipse.platform.swt') {
+ sh '/opt/tools/apache-maven/latest/bin/mvn --batch-mode -Pbuild-individual-bundles -DcheckAllWS=true -DforkCount=0 -Dcompare-version-with-baselines.skip=false -Dmaven.compiler.failOnWarning=true clean verify '
+ }
+ }
+ }
+ }
+ }
+ post {
+ always {
+ junit '**/*.test*/target/surefire-reports/*.xml'
+ archiveArtifacts artifacts: '**/*.log,**/*.html,**/target/*.jar,**/target/*.zip'
+ publishIssues issues:[scanForIssues(tool: java()), scanForIssues(tool: mavenConsole())]
+ }
+ unstable {
+ gerritReview labels: [Verified: -1], message: "Build UNSTABLE (test failures) $BUILD_URL"
+ }
+ failure {
+ gerritReview labels: [Verified: -1], message: "Build FAILED $BUILD_URL"
+ }
+ }
+ }
+ stage('Check freeze period') {
+ when {
+ not {
+ branch 'master'
+ }
+ }
+ steps {
+ sh "wget https://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/plain/scripts/verifyFreezePeriod.sh"
+ sh "chmod +x verifyFreezePeriod.sh"
+ withCredentials([string(credentialsId: 'google-api-key', variable: 'GOOGLE_API_KEY')]) {
+ sh './verifyFreezePeriod.sh'
+ }
+ }
+ post {
+ failure {
+ gerritReview labels: [Verified: -1], message: "Build and test are OK, but Eclipse project is currently in a code freeze period.\nPlease wait for end of code freeze period before merging.\n $BUILD_URL"
+ }
+ }
+ }
+ }
+ post {
+ success {
+ gerritReview labels: [Verified: 1], message: "Build Succcess $BUILD_URL"
+ }
+ }
+ }
+} \ No newline at end of file

Back to the top