1
0
Fork 0
eza-docker-build/Jenkinsfile

73 lines
1.8 KiB
Groovy

pipeline {
agent {
label 'msspec_agent_amd64'
}
environment {
DEB_REPOSITORY_URI = credentials('jenkins-eza-build-repository-uri')
EMAIL_TO = credentials('jenkins-eza-build-email-to')
}
stages {
stage('Test if a new build is required…') {
steps {
sh './test/check.eza.update.sh'
}
}
stage('Building the .deb package if required with Docker…') {
steps {
sh """
if test -f ./test/.github.eza.upgrade; then
./build-deb-package-in-container.sh
elif ! test -f ./test/.github.eza.upgrade; then
echo ".deb file is uptodate"
fi
"""
}
}
stage('Testing the package if available with Docker…') {
steps {
sh """
if test -f ./target/eza_*_amd64.deb; then
./test/test-deb-package-in-container.sh
elif ! test -f ./target/eza_*_amd64.deb; then
echo "No .deb file to test"
fi
"""
}
}
stage('Send package if available to Debian repository…') {
steps {
echo 'Send amd64 package to Debian repository through SSH'
sh """
if test -f ./target/eza_*_amd64.deb; then
scp target/eza_*_amd64.deb "${USER}"@"${DEB_REPOSITORY_URI}":/tmp/
elif ! test -f ./target/eza_*_amd64.deb; then
echo "No .deb file to send to remote APT repository."
fi
"""
}
}
stage('Cleaning up…') {
steps {
echo 'Clean old and unused Docker images…'
sh 'docker image prune --all --force'
echo 'Clean generated files…'
sh 'git clean -d -x --force --'
}
}
}
post {
failure {
emailext(
to: "${EMAIL_TO}",
subject: "Failed job: ${env.JOB_NAME}:${env.BUILD_NUMBER}",
body: """
EXECUTED: Job \'${env.JOB_NAME}:${env.BUILD_NUMBER}\'
Status: Failed
View console output at ${env.BUILD_URL} - ${env.JOB_NAME}:${env.BUILD_NUMBER}
"""
)
}
}
}