iprbench/ci/ipr.jenkins

56 lines
2.4 KiB
Plaintext

// Jenkinsfile for jenkins.ipr.univ-rennes1.fr (Institut de Physique de Rennes)
pipeline {
agent {label 'alambix_agent'}
environment {
IPRBENCH_VENV_PATH = "${WORKSPACE}/iprbench.venv"
}
stages {
stage('setup') {
steps {
echo 'setting up itinv test environment'
sh """#!/bin/bash
python3 -m venv ${IPRBENCH_VENV_PATH} &&
source ${IPRBENCH_VENV_PATH}/bin/activate &&
pip install --upgrade pip &&
pip install --upgrade setuptools &&
pip install .
"""
}
}
stage('testing') {
steps {
sh """#!/bin/bash
set -o errexit
source ${IPRBENCH_VENV_PATH}/bin/activate &&
python -m unittest
"""
}
}
stage('releasing iprbench...') {
steps {
// see https://www.jenkins.io/doc/book/pipeline/jenkinsfile/
// graffy created the credential 4e327c3e-8b22-462b-8294-199402e22e7c from jenkin's interface in 2020. This credential is named maco-tester, stores a private ssh key that is allowed access to ssh maco@store.ipr.univ-rennes1.fr. This maco-tester credential belongs to global domain and Jenkins store.
withCredentials([sshUserPrivateKey(credentialsId: '4e327c3e-8b22-462b-8294-199402e22e7c', keyFileVariable: 'MACO_AT_STORE_KEY_FILE_PATH', passphraseVariable: '', usernameVariable: '')]) {
// MACO_AT_STORE_KEY_FILE_PATH stores the path of the public key file to access maco@store.ipr.univ-rennes1.fr
sh """
git archive -o fr.univ-rennes.ipr.iprbench.tar.gz HEAD &&
scp -i ${MACO_AT_STORE_KEY_FILE_PATH} fr.univ-rennes.ipr.iprbench.tar.gz maco@store.ipr.univ-rennes1.fr:/mnt/store.ipr/InstallProgs/ipr/ipr-packages
"""
}
}
}
}
post
{
// always, success, failure, unstable, changed
failure
{
mail bcc: '', body: "<b>Example</b><br>Project: ${env.JOB_NAME} <br>Build Number: ${env.BUILD_NUMBER} <br>Build URL: ${env.BUILD_URL}", cc: '', charset: 'UTF-8', from: '', mimeType: 'text/html', replyTo: '', subject: "CI build failed for ${env.JOB_NAME}", to: "guillaume.raffy@univ-rennes1.fr";
}
cleanup {
cleanWs()
}
}
}