| pipeline { |
| agent { |
| kubernetes { |
| label 'hawk-pod' |
| yaml """ |
| apiVersion: v1 |
| kind: Pod |
| spec: |
| containers: |
| - name: maven |
| image: maven:3.6.1-jdk-8 |
| command: |
| - cat |
| tty: true |
| resources: |
| limits: |
| memory: "7Gi" |
| cpu: "1" |
| requests: |
| memory: "4Gi" |
| cpu: "1" |
| env: |
| - name: "MAVEN_OPTS" |
| value: "-Duser.home=/home/jenkins" |
| volumeMounts: |
| - name: jenkins-home |
| mountPath: /home/jenkins |
| readOnly: false |
| - 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: volume-known-hosts |
| mountPath: /home/jenkins/.ssh |
| volumes: |
| - name: jenkins-home |
| emptyDir: |
| medium: "" |
| - 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: volume-known-hosts |
| configMap: |
| name: known-hosts |
| """ |
| } |
| } |
| triggers { |
| pollSCM('H/5 * * * *') |
| } |
| stages { |
| stage('Tycho') { |
| steps { |
| container('maven') { |
| // temporarily skip tests while we get the downloads part right |
| sh 'mvn -B clean install -DfailIfNoTests=false -DskipTests' |
| } |
| } |
| post { always { junit '**/TEST-*.xml' } } |
| } |
| stage('Plain Maven') { |
| steps { |
| container('maven') { |
| sh 'mvn -B --quiet -f pom-plain.xml install' |
| } |
| } |
| } |
| stage('Downloads') { |
| when { branch 'master' } |
| steps { |
| lock('download-area') { |
| sshagent (['projects-storage.eclipse.org-bot-ssh']) { |
| sh ''' |
| VERSION=$(grep Bundle-Version "$WORKSPACE"/plugins/org.hawk.core/META-INF/MANIFEST.MF | \ |
| cut --delim=: -f2 | \ |
| sed -re 's/ *([0-9]+)[.]([0-9]+)[.].*/\1.\2.0/') |
| DIST_DIR="/home/data/httpd/download.eclipse.org/hawk/$VERSION" |
| SSH_USER=genie.hawk@projects-storage.eclipse.org |
| |
| ssh "$SSH_USER" rm -rf "$DIST_DIR" |
| scp -r "$WORKSPACE/releng/org.hawk.updatesite/target/repository" "$SSH_USER":"${DIST_DIR}/updates" |
| scp "$WORKSPACE"/releng/org.hawk.service.server.product/target/products/hawk-server-nogpl_*.zip "$SSH_USER":"${DIST_DIR}" |
| scp "$WORKSPACE"/releng/org.hawk.service.cli.product/target/products/hawk-cli_*.zip "$SSH_USER":"${DIST_DIR}" |
| |
| tar czf "hawk-thrift-js-$VERSION.tar.gz" "$WORKSPACE"/plugins-server/org.hawk.service.api/src-gen-js |
| tar czf "hawk-thrift-cpp-$VERSION.tar.gz" "$WORKSPACE"/plugins-server/org.hawk.service.api/src-gen-cpp |
| scp "hawk-thrift-js-$VERSION.tar.gz" "$SSH_USER":"$DIST_DIR" |
| scp "hawk-thrift-cpp-$VERSION.tar.gz" "$SSH_USER":"$DIST_DIR" |
| ''' |
| } |
| } |
| } |
| } |
| } |
| post { |
| changed { |
| emailext(body: "${currentBuild.currentResult}: Job ${env.JOB_NAME} build ${env.BUILD_NUMBER}\n More info at: ${env.BUILD_URL}", |
| recipientProviders: [[ |
| $class: "DevelopersRecipientProvider", |
| $class: "RequesterRecipientProvider" |
| ]], |
| subject: "Jenkins Build ${currentBuild.currentResult}: Job ${env.JOB_NAME}") |
| } |
| } |
| } |