2020-07-23 00:17:16 +02:00
|
|
|
pipeline {
|
|
|
|
agent any
|
|
|
|
|
|
|
|
options {
|
|
|
|
skipDefaultCheckout(true)
|
|
|
|
// Keep the 2 most recent builds
|
|
|
|
buildDiscarder(logRotator(numToKeepStr: '2'))
|
|
|
|
timestamps()
|
|
|
|
}
|
|
|
|
|
|
|
|
environment {
|
|
|
|
PATH="/var/lib/jenkins/miniconda3/bin:$PATH"
|
|
|
|
}
|
|
|
|
|
|
|
|
stages {
|
|
|
|
stage ("Code pull"){
|
|
|
|
steps{
|
|
|
|
checkout scm
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Build environment') {
|
|
|
|
steps {
|
|
|
|
echo "Building virtualenv"
|
|
|
|
sh ''' conda create --yes -n ${BUILD_TAG} python
|
|
|
|
source /var/lib/jenkins/miniconda3/etc/profile.d/conda.sh
|
|
|
|
conda activate ${BUILD_TAG}
|
2020-08-10 11:02:22 +02:00
|
|
|
pip install -r requirements.txt
|
2020-07-23 00:17:16 +02:00
|
|
|
pip install pylint
|
|
|
|
'''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Static code metrics') {
|
|
|
|
steps {
|
|
|
|
echo "Style check"
|
|
|
|
sh ''' source /var/lib/jenkins/miniconda3/etc/profile.d/conda.sh
|
|
|
|
conda activate ${BUILD_TAG}
|
2020-08-09 02:28:02 +02:00
|
|
|
pylint PlexBot || true
|
2020-07-23 00:17:16 +02:00
|
|
|
'''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stage('Build package') {
|
|
|
|
when {
|
|
|
|
expression {
|
|
|
|
currentBuild.result == null || currentBuild.result == 'SUCCESS'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
steps {
|
2020-08-10 11:02:22 +02:00
|
|
|
sh './deploy/build.sh'
|
2020-07-23 00:17:16 +02:00
|
|
|
}
|
2020-08-10 10:25:48 +02:00
|
|
|
}
|
|
|
|
stage('Push Image') {
|
|
|
|
steps {
|
|
|
|
sh './deploy/push.sh'
|
|
|
|
}
|
2020-07-23 00:17:16 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
post {
|
|
|
|
always {
|
|
|
|
sh 'conda remove --yes -n ${BUILD_TAG} --all'
|
2020-08-09 02:28:02 +02:00
|
|
|
sh 'docker system prune -a -f'
|
2020-07-23 00:17:16 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|