269 lines
9 KiB
Groovy
269 lines
9 KiB
Groovy
pipeline {
|
|
agent any
|
|
options {
|
|
disableConcurrentBuilds()
|
|
timeout(time: 1, unit: 'HOURS')
|
|
}
|
|
stages {
|
|
stage('Prepare') {
|
|
steps {
|
|
sh 'printenv'
|
|
telegramSend "Pipeline STARTED: `${env.JOB_NAME}`\n\nAuthor: `${env.GIT_AUTHOR_NAME} <${env.GIT_AUTHOR_EMAIL}>`\nBuild Number: ${env.BUILD_NUMBER}\n\n${env.RUN_DISPLAY_URL}"
|
|
sh 'make prepare'
|
|
}
|
|
}
|
|
stage('Build Marshall') {
|
|
steps {
|
|
sh 'make build-marshall'
|
|
}
|
|
}
|
|
stage('Build PHP Runtime Containers'){
|
|
parallel {
|
|
stage('PHP 5.6'){
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-core-5.6'
|
|
}
|
|
}
|
|
stage('PHP 7.0'){
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-core-7.0'
|
|
}
|
|
}
|
|
stage('PHP 7.1'){
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-core-7.1'
|
|
}
|
|
}
|
|
stage('PHP 7.2'){
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-core-7.2'
|
|
}
|
|
}
|
|
stage('PHP 7.3'){
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-core-7.3'
|
|
}
|
|
}
|
|
stage('Node 8'){
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-node-8'
|
|
}
|
|
}
|
|
stage('Node 10'){
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-node-10'
|
|
}
|
|
}
|
|
stage('Node 11'){
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-node-11'
|
|
}
|
|
}
|
|
stage('Node 12'){
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-node-12'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Build Derived PHP Containers'){
|
|
parallel {
|
|
stage('CLI PHP 5.6') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-cli-5.6'
|
|
}
|
|
}
|
|
stage('Nginx PHP 5.6') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-nginx-5.6'
|
|
}
|
|
}
|
|
stage('Apache PHP 5.6') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-apache-5.6'
|
|
}
|
|
}
|
|
|
|
stage('CLI PHP 7.0') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-cli-7.0'
|
|
}
|
|
}
|
|
stage('Nginx PHP 7.0') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-nginx-7.0'
|
|
}
|
|
}
|
|
stage('Apache PHP 7.0') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-apache-7.0'
|
|
}
|
|
}
|
|
|
|
stage('CLI PHP 7.1') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-cli-7.1'
|
|
}
|
|
}
|
|
stage('Nginx PHP 7.1') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-nginx-7.1'
|
|
}
|
|
}
|
|
stage('Apache PHP 7.1') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-apache-7.1'
|
|
}
|
|
}
|
|
|
|
stage('CLI PHP 7.2') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-cli-7.2'
|
|
}
|
|
}
|
|
stage('Nginx PHP 7.2') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-nginx-7.2'
|
|
}
|
|
}
|
|
stage('Apache PHP 7.2') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-apache-7.2'
|
|
}
|
|
}
|
|
|
|
stage('CLI PHP 7.3') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-cli-7.3'
|
|
}
|
|
}
|
|
stage('Nginx PHP 7.3') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-nginx-7.3'
|
|
}
|
|
}
|
|
stage('Apache PHP 7.3') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make build-php-apache-7.3'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Tag Containers'){
|
|
parallel {
|
|
stage('Core') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make tag-php-core'
|
|
}
|
|
}
|
|
stage('CLI') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make tag-php-cli'
|
|
}
|
|
}
|
|
stage('Nginx') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make tag-nginx'
|
|
}
|
|
}
|
|
stage('Apache') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make tag-apache'
|
|
}
|
|
}
|
|
stage('Node') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make tag-node'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Test Containers'){
|
|
parallel {
|
|
stage('All Nginx Containers'){
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make test-php-nginx-5.6'
|
|
sh 'make test-php-nginx-7.0'
|
|
sh 'make test-php-nginx-7.1'
|
|
sh 'make test-php-nginx-7.2'
|
|
sh 'make test-php-nginx-7.3'
|
|
}
|
|
}
|
|
stage('All Apache Containers'){
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make test-php-apache-5.6'
|
|
sh 'make test-php-apache-7.0'
|
|
sh 'make test-php-apache-7.1'
|
|
sh 'make test-php-apache-7.2'
|
|
sh 'make test-php-apache-7.3'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Push Containers'){
|
|
parallel {
|
|
stage('Push') {
|
|
agent { node { label 'x86' } }
|
|
steps {
|
|
sh 'make push-marshall'
|
|
sh 'make push-core'
|
|
sh 'make push-cli'
|
|
sh 'make push-nginx'
|
|
sh 'make push-apache'
|
|
sh 'make push-node'
|
|
telegramSend 'Updated Base Images have been pushed'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
success{
|
|
telegramSend "Pipeline SUCCESS: `${env.JOB_NAME}`\n\nAuthor: `${env.GIT_AUTHOR_NAME} <${env.GIT_AUTHOR_EMAIL}>`\nBuild Number: ${env.BUILD_NUMBER}\n\n${env.RUN_DISPLAY_URL}"
|
|
}
|
|
aborted{
|
|
telegramSend "Pipeline ABORTED: `${env.JOB_NAME}`\n\nAuthor: `${env.GIT_AUTHOR_NAME} <${env.GIT_AUTHOR_EMAIL}>`\nBuild Number: ${env.BUILD_NUMBER}\n\n${env.RUN_DISPLAY_URL}"
|
|
}
|
|
failure{
|
|
telegramSend "Pipeline FAIL: `${env.JOB_NAME}`\n\nAuthor: `${env.GIT_AUTHOR_NAME} <${env.GIT_AUTHOR_EMAIL}>`\nBuild Number: ${env.BUILD_NUMBER}\n\n${env.RUN_DISPLAY_URL}"
|
|
}
|
|
cleanup {
|
|
sh 'make cleanup'
|
|
cleanWs()
|
|
}
|
|
}
|
|
}
|