Update Jenkinsfile

This commit is contained in:
Zheyuan Wu
2025-11-05 23:41:33 -06:00
parent 5c8a3b27c0
commit 51b34be077

46
docker/Jenkinsfile vendored
View File

@@ -11,32 +11,32 @@ pipeline {
agent any agent any
stages { stages {
stage('Cleanup Workspace') { stage("Cleanup Workspace") {
steps { steps {
// Using Workspace Cleanup Plugin (if installed and configured) // Using Workspace Cleanup Plugin (if installed and configured)
cleanWs() cleanWs()
} }
} }
stage('Checkout') { stage("Checkout") {
steps { steps {
checkout([ checkout([
$class: 'GitSCM', $class: "GitSCM",
branches: [[ name: '*/main' ]], branches: [[ name: "*/main" ]],
userRemoteConfigs: [[ userRemoteConfigs: [[
url: 'https://github.com/Trance-0/NoteNextra', url: "https://github.com/Trance-0/NoteNextra",
]] ]]
]) ])
} }
} }
stage('Build and test'){ stage("Build and test"){
parallel { parallel {
stage('Build Math') { stage("Build Math") {
steps { steps {
script { script {
echo "Building docker image ${registry}-math:${version}.${env.BUILD_ID}" echo "Building docker image ${registry}-math:${version}.${env.BUILD_ID}"
def customImage = docker.build("${registry}-math:v${version}.${env.BUILD_ID}","-f ./docker/math/Dockerfile --no-cache --progress=plain .") def customImage = docker.build("${registry}-math:v${version}.${env.BUILD_ID}","-f ./docker/math/Dockerfile --no-cache --progress=plain .")
echo "Logging in to docker hub" echo "Logging in to docker hub"
// docker.withRegistry('https://registry.hub.docker.com', 'docker-hub-creds') { // docker.withRegistry("https://registry.hub.docker.com", "docker-hub-creds") {
// echo "Pushing docker image ${registry}:v${version}.${env.BUILD_ID}" // echo "Pushing docker image ${registry}:v${version}.${env.BUILD_ID}"
// customImage.push() // customImage.push()
// } // }
@@ -44,13 +44,13 @@ pipeline {
} }
} }
} }
stage('Build CSE') { stage("Build CSE") {
steps { steps {
script { script {
echo "Building docker image ${registry}-cse:${version}.${env.BUILD_ID}" echo "Building docker image ${registry}-cse:${version}.${env.BUILD_ID}"
def customImage = docker.build("${registry}-cse:v${version}.${env.BUILD_ID}","-f ./docker/cse/Dockerfile --no-cache --progress=plain -t .") def customImage = docker.build("${registry}-cse:v${version}.${env.BUILD_ID}","-f ./docker/cse/Dockerfile --no-cache --progress=plain .")
echo "Logging in to docker hub" echo "Logging in to docker hub"
// docker.withRegistry('https://registry.hub.docker.com', 'docker-hub-creds') { // docker.withRegistry("https://registry.hub.docker.com", "docker-hub-creds") {
// echo "Pushing docker image ${registry}:v${version}.${env.BUILD_ID}" // echo "Pushing docker image ${registry}:v${version}.${env.BUILD_ID}"
// customImage.push() // customImage.push()
// } // }
@@ -60,50 +60,50 @@ pipeline {
} }
} }
} }
stage('Cleanup Docker tags') { stage("Cleanup Docker tags") {
steps { steps {
script { script {
echo "1. Stopping existing container" echo "1. Stopping existing container"
sh 'docker compose -f ./docker/docker-compose.yaml down' sh "docker compose -f ./docker/docker-compose.yaml down"
// Using Workspace Cleanup Plugin (if installed and configured) // Using Workspace Cleanup Plugin (if installed and configured)
echo "2. Removing existing images" echo "2. Removing existing images"
def imageNameMath = "${registry}-math:latest" def imageNameMath = "${registry}-math:latest"
def imageNameCSE = "${registry}-cse:latest" def imageNameCSE = "${registry}-cse:latest"
def oldImageIDMath = sh( def oldImageIDMath = sh(
script: 'docker images -qf reference=\${imageNameMath}', script: "docker images -qf reference=\${imageNameMath}",
returnStdout: true returnStdout: true
) )
def oldImageIDCSE = sh( def oldImageIDCSE = sh(
script: 'docker images -qf reference=\${imageNameCSE}', script: "docker images -qf reference=\${imageNameCSE}",
returnStdout: true returnStdout: true
) )
if ( "${oldImageIDMath}" != '' ) { if ( "${oldImageIDMath}" != "" ) {
echo "Removing old image ${oldImageIDMath}" echo "Removing old image ${oldImageIDMath}"
echo "Image Name: " + "${imageNameMath}" echo "Image Name: " + "${imageNameMath}"
echo "Old Image: ${oldImageIDMath}" echo "Old Image: ${oldImageIDMath}"
sh 'docker rmi ${oldImageIDMath}' sh "docker rmi ${oldImageIDMath}"
}else{ }else{
echo "Warning: ${imageNameMath} does not exist" echo "Warning: ${imageNameMath} does not exist"
} }
if ( "${oldImageIDCSE}" != '' ) { if ( "${oldImageIDCSE}" != "" ) {
echo "Removing old image ${oldImageIDCSE}" echo "Removing old image ${oldImageIDCSE}"
echo "Image Name: " + "${imageNameCSE}" echo "Image Name: " + "${imageNameCSE}"
echo "Old Image: ${oldImageIDCSE}" echo "Old Image: ${oldImageIDCSE}"
sh 'docker rmi ${oldImageIDCSE}' sh "docker rmi ${oldImageIDCSE}"
}else{ }else{
echo "Warning: ${imageNameCSE} does not exist" echo "Warning: ${imageNameCSE} does not exist"
} }
echo "3. Assigned new tags to the images" echo "3. Assigned new tags to the images"
sh 'docker tag ${registry}-math:v${version}.${env.BUILD_ID} ${registry}-math:latest' sh "docker tag ${registry}-math:v${version}.${env.BUILD_ID} ${registry}-math:latest"
sh 'docker tag ${registry}-cse:v${version}.${env.BUILD_ID} ${registry}-cse:latest' sh "docker tag ${registry}-cse:v${version}.${env.BUILD_ID} ${registry}-cse:latest"
} }
} }
} }
stage('Deploy') { stage("Deploy") {
steps { steps {
script { script {
echo "Deploying docker image ${registry}-math:${version}.${env.BUILD_ID} and ${registry}-cse:${version}.${env.BUILD_ID} with docker compose" echo "Deploying docker image ${registry}-math:${version}.${env.BUILD_ID} and ${registry}-cse:${version}.${env.BUILD_ID} with docker compose"
sh 'docker compose -f ./docker/docker-compose.yaml up -d' sh "docker compose -f ./docker/docker-compose.yaml up -d"
} }
} }
} }