Files
NoteNextra-origin/docker/Jenkinsfile
Trance-0 1c54bf0b26 backup
2025-11-24 16:11:57 -06:00

120 lines
5.3 KiB
Groovy

pipeline {
environment {
registry = "trance0/notenextra"
version = "1.2"
NODE_OPTIONS = "--max-old-space-size=8192"
// NEXT_SEARCH_ALGOLIA_APP_ID = "${NEXT_SEARCH_ALGOLIA_APP_ID}"
// NEXT_SEARCH_ALGOLIA_API_KEY = "${NEXT_SEARCH_ALGOLIA_API_KEY}"
// NEXT_SEARCH_ALGOLIA_INDEX_NAME = "${NEXT_SEARCH_ALGOLIA_INDEX_NAME}"
}
agent any
stages {
stage("Cleanup Workspace") {
steps {
// Using Workspace Cleanup Plugin (if installed and configured)
cleanWs()
}
}
stage("Checkout") {
steps {
checkout([
$class: "GitSCM",
branches: [[ name: "*/main" ]],
userRemoteConfigs: [[
url: "https://github.com/Trance-0/NoteNextra",
]]
])
}
}
stage('Pre-build script') {
steps{
script {
echo "Running pre-build script"
sh "./docker/prebuild.sh"
}
}
}
stage("Build and test"){
parallel {
stage("Build Math") {
steps {
script {
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 .")
echo "Logging in to docker hub"
// docker.withRegistry("https://registry.hub.docker.com", "docker-hub-creds") {
// echo "Pushing docker image ${registry}:v${version}.${env.BUILD_ID}"
// customImage.push()
// }
echo "skipping push due to conflicted servers"
}
}
}
stage("Build CSE") {
steps {
script {
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 .")
echo "Logging in to docker hub"
// docker.withRegistry("https://registry.hub.docker.com", "docker-hub-creds") {
// echo "Pushing docker image ${registry}:v${version}.${env.BUILD_ID}"
// customImage.push()
// }
echo "skipping push due to conflicted servers"
}
}
}
}
}
stage("Cleanup Docker tags") {
steps {
script {
echo "1. Stopping existing container"
sh "docker compose -f ./docker/docker-compose.yaml down"
// Using Workspace Cleanup Plugin (if installed and configured)
echo "2. Removing existing images"
def imageNameMath = "${registry}-math:latest"
def imageNameCSE = "${registry}-cse:latest"
def oldImageIDMath = sh(
script: "docker images -qf reference=\${imageNameMath}",
returnStdout: true
)
def oldImageIDCSE = sh(
script: "docker images -qf reference=\${imageNameCSE}",
returnStdout: true
)
if ( "${oldImageIDMath}" != "" ) {
echo "Removing old image ${oldImageIDMath}"
echo "Image Name: " + "${imageNameMath}"
echo "Old Image: ${oldImageIDMath}"
sh "docker rmi ${oldImageIDMath}"
}else{
echo "Warning: ${imageNameMath} does not exist"
}
if ( "${oldImageIDCSE}" != "" ) {
echo "Removing old image ${oldImageIDCSE}"
echo "Image Name: " + "${imageNameCSE}"
echo "Old Image: ${oldImageIDCSE}"
sh "docker rmi ${oldImageIDCSE}"
}else{
echo "Warning: ${imageNameCSE} does not exist"
}
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}-cse:v${version}.${env.BUILD_ID} ${registry}-cse:latest"
}
}
}
stage("Deploy") {
steps {
script {
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"
}
}
}
}
}