File: /var/www/linde-ai/Jenkinsfile
pipeline {
agent any
stages {
stage('Install') {
steps {
script {
if (env.BOREALIS_SLACK_CHANNEL_ID == null) {
error('Missing BOREALIS_SLACK_CHANNEL_ID enviroment variable')
}
if (env.BOREALIS_NODE_JS_VERSION == null) {
error('Missing BOREALIS_NODE_JS_VERSION enviroment variable')
}
if (env.BOREALIS_SERVER_ROOT_FOLDER == null) {
error('Missing BOREALIS_SERVER_ROOT_FOLDER enviroment variable')
}
if (env.BOREALIS_SSH_SERVER == null) {
error('Missing BOREALIS_SSH_SERVER enviroment variable')
}
if (env.BOREALIS_PROJECT_URL == null) {
error('Missing BOREALIS_PROJECT_URL enviroment variable')
}
}
dir('./html') {
nodejs("${env.BOREALIS_NODE_JS_VERSION}") {
echo 'Installing dependecies..'
sh 'npm ci'
echo 'Building..'
sh 'npm run build'
}
}
dir('./wp-content/themes/__THEME_NAME__') {
sh 'composer install'
}
}
}
stage('Deploy') {
when {
expression {
currentBuild.result == null || currentBuild.result == 'SUCCESS'
}
}
steps {
sh 'rm -rf publish'
sh 'rm -rf wp-content/themes/__THEME_NAME__/.vscode'
sh '7za a -t7z ./publish/$BUILD_TIMESTAMP-plugins.7z ./wp-content/plugins/*'
sh '7za a -t7z ./publish/$BUILD_TIMESTAMP-theme.7z ./wp-content/themes/__THEME_NAME__/*'
sshPublisher(publishers: [sshPublisherDesc(configName: "${env.BOREALIS_SSH_SERVER}",
transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: """
rm -rf ${env.BOREALIS_SERVER_ROOT_FOLDER}/wp-content/themes/__THEME_NAME__/*
rm -rf ${env.BOREALIS_SERVER_ROOT_FOLDER}/wp-content/plugins/*
7za x -y ${env.BOREALIS_SERVER_ROOT_FOLDER}/$BUILD_TIMESTAMP-plugins.7z -o${env.BOREALIS_SERVER_ROOT_FOLDER}/wp-content/plugins
7za x -y ${env.BOREALIS_SERVER_ROOT_FOLDER}/$BUILD_TIMESTAMP-theme.7z -o${env.BOREALIS_SERVER_ROOT_FOLDER}/wp-content/themes/__THEME_NAME__/
rm ${env.BOREALIS_SERVER_ROOT_FOLDER}/$BUILD_TIMESTAMP-plugins.7z && rm ${env.BOREALIS_SERVER_ROOT_FOLDER}/$BUILD_TIMESTAMP-theme.7z
""", execTimeout: 120000, flatten: false, makeEmptyDirs: false,
noDefaultExcludes: false, patternSeparator: '[, ]+',
remoteDirectory: "${env.BOREALIS_SERVER_ROOT_FOLDER}", remoteDirectorySDF: false,
removePrefix: 'publish/', sourceFiles: 'publish/*.7z')],
usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
}
}
}
post {
success {
slackSend channel: "${env.BOREALIS_SLACK_CHANNEL_ID}", color: '#2EB886',
message: """Created build for ${env.JOB_NAME}!
Repository URL: ${env.GIT_URL}
Deployed branch: ${env.GIT_BRANCH}
Site URL: ${env.BOREALIS_PROJECT_URL}
""", tokenCredentialId: 'slack-jenkins-integration-token'
}
failure {
slackSend channel: "${env.BOREALIS_SLACK_CHANNEL_ID}", color: '#A30200',
message: """Build failed for ${env.JOB_NAME}!
Repository URL: ${env.GIT_URL}
Deployed branch: ${env.GIT_BRANCH}
Site URL: ${env.BOREALIS_PROJECT_URL}
""", tokenCredentialId: 'slack-jenkins-integration-token'
}
always {
archiveArtifacts artifacts: 'publish/*.7z', onlyIfSuccessful: true
}
}
}