Files
NoteNextra-origin/Jenkinsfile
2025-07-06 12:55:41 -05:00

60 lines
2.0 KiB
Groovy

pipeline {
environment {
registry = "trance0/notenextra"
version = "1.1"
NODE_OPTIONS = "--max-old-space-size=8192"
}
agent any
stages {
stage('Checkout') {
steps {
checkout([
$class: 'GitSCM',
branches: [[ name: '*/main' ]],
userRemoteConfigs: [[
url: 'https://github.com/Trance-0/NoteNextra',
]]
])
}
}
stage('Test') {
steps {
nodejs(nodeJSInstallationName: 'NodeJS') {
sh 'npm install'
sh 'npm run build'
}
}
}
stage('Build') {
steps {
script {
echo "Building docker image ${registry}:${version}.${env.BUILD_ID}"
def customImage = docker.build("${registry}:v${version}.${env.BUILD_ID}")
// 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('Deploy') {
steps {
script {
def imageTag = "${registry}:v${version}.${env.BUILD_ID}"
echo "Deploying docker image ${imageTag}"
echo "Stopping existing container"
sh 'docker stop notenextra-jenkins || true'
echo "Removing existing container"
sh 'docker rm notenextra-jenkins || true'
echo "Running new docker container"
sh "docker run -d -p 13000:3000 --restart=on-failure:10 --name notenextra-jenkins ${imageTag}"
}
}
}
}
}