[580808] Provide a Jenkinsfile to build the EPP JREs
https://bugs.eclipse.org/bugs/show_bug.cgi?id=580808
diff --git a/epp/releng/org.eclipse.justj.epp.parent/Jenkinsfile b/epp/releng/org.eclipse.justj.epp.parent/Jenkinsfile
new file mode 100644
index 0000000..b75ce51
--- /dev/null
+++ b/epp/releng/org.eclipse.justj.epp.parent/Jenkinsfile
@@ -0,0 +1,109 @@
+pipeline {
+ agent { label 'migration' }
+
+ options {
+ buildDiscarder(logRotator(numToKeepStr: '10'))
+ disableConcurrentBuilds()
+ skipDefaultCheckout true
+ }
+
+ tools {
+ maven 'apache-maven-latest'
+ jdk 'openjdk-jdk11-latest'
+ }
+
+ environment {
+ PUBLISH_LOCATION = 'epp-test'
+ }
+
+ parameters {
+ choice(
+ name: 'BUILD_TYPE',
+ choices: ['nightly', 'milestone', 'release'],
+ description: '''
+ Choose the type of build.
+ Note that a release build will not promote the build, but rather will promote the most recent milestone build.
+ '''
+ )
+
+ booleanParam(
+ name: 'PROMOTE',
+ defaultValue: false,
+ description: 'Whether to promote the build to the download server.'
+ )
+ }
+
+ stages {
+ stage('Display Parameters') {
+ steps {
+ echo "BUILD_TYPE=${params.BUILD_TYPE}"
+ echo "PROMOTE=${params.PROMOTE}"
+ script {
+ env.PROMOTE = params.PROMOTE
+ env.BUILD_TYPE = params.BUILD_TYPE
+ }
+ }
+ }
+
+ stage('Git Checkout') {
+ steps {
+ script {
+ def gitVariables = checkout(
+ poll: false,
+ scm: [
+ $class: 'GitSCM',
+ branches: [[name: '*/master']],
+ doGenerateSubmoduleConfigurations: false,
+ submoduleCfg: [],
+ userRemoteConfigs: [[url: 'https://git.eclipse.org/r/justj/justj.git' ]]
+ ]
+ )
+
+ echo "$gitVariables"
+ env.GIT_COMMIT = gitVariables.GIT_COMMIT
+ }
+ }
+ }
+
+ stage('Build EPP JREs') {
+ steps {
+ sshagent(['projects-storage.eclipse.org-bot-ssh']) {
+ dir('epp') {
+ sh '''
+ if [[ $PROMOTE == false ]]; then
+ promotion_argument='-Dorg.eclipse.justj.p2.manager.args='
+ fi
+ mvn --no-transfer-progress $promotion_argument -DPACK_AND_SIGN=true -Dorg.eclipse.justj.p2.manager.build.url=$JOB_URL -Dorg.eclipse.justj.p2.manager.relative=$PUBLISH_LOCATION -Dbuild.type=$BUILD_TYPE -Dgit.commit=$GIT_COMMIT -Dbuild.id=$BUILD_NUMBER clean verify
+ '''
+ }
+ }
+ }
+ }
+
+ stage('Archive Results') {
+ steps {
+ archiveArtifacts 'epp/**'
+ }
+ }
+ }
+
+ post {
+ failure {
+ mail to: 'ed.merks@gmail.com',
+ subject: "[JustJ CI] Build Failure ${currentBuild.fullDisplayName}",
+ mimeType: 'text/html',
+ body: "Project: ${env.JOB_NAME}<br/>Build Number: ${env.BUILD_NUMBER}<br/>Build URL: ${env.BUILD_URL}<br/>Console: ${env.BUILD_URL}/console"
+ }
+
+ fixed {
+ mail to: 'ed.merks@gmail.com',
+ subject: "[JustJ CI] Back to normal ${currentBuild.fullDisplayName}",
+ mimeType: 'text/html',
+ body: "Project: ${env.JOB_NAME}<br/>Build Number: ${env.BUILD_NUMBER}<br/>Build URL: ${env.BUILD_URL}<br/>Console: ${env.BUILD_URL}/console"
+ }
+
+ cleanup {
+ deleteDir()
+ }
+ }
+}
\ No newline at end of file