73 lines
1.8 KiB
Groovy
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}
|
|
"""
|
|
)
|
|
}
|
|
}
|
|
}
|