Files
whsfund/Jenkinsfile
2026-06-03 17:42:52 -04:00

74 lines
2.5 KiB
Groovy

pipeline {
agent any
environment {
REGISTRY = 'registry.dwarrington.com'
IMAGE_NAME = 'whsfund'
IMAGE_TAG = "${env.BUILD_NUMBER}"
CREDENTIALS_ID = 'registry-creds'
SUBDIR = ''
COMPOSE_FILE = 'docker-compose.yml'
SERVICE_NAME = 'whsfund'
VITE_FIREBASE_API_KEY = 'AIzaSyAA7nmvia_CrPUnbong7xTF7vcoRdhXbyw'
VITE_FIREBASE_AUTH_DOMAIN = 'whsfund-c5e40.firebaseapp.com'
VITE_FIREBASE_PROJECT_ID = 'whsfund-c5e40'
VITE_FIREBASE_STORAGE_BUCKET = 'whsfund-c5e40.firebasestorage.app'
VITE_FIREBASE_MESSAGING_SENDER_ID = '395581871999'
VITE_FIREBASE_APP_ID = '1:395581871999:web:919c94680146e45fd06c4a'
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build & Push') {
steps {
script {
docker.withRegistry("https://${REGISTRY}", CREDENTIALS_ID) {
def firebaseBuildArgs = [
"--build-arg VITE_FIREBASE_API_KEY=${env.VITE_FIREBASE_API_KEY}",
"--build-arg VITE_FIREBASE_AUTH_DOMAIN=${env.VITE_FIREBASE_AUTH_DOMAIN}",
"--build-arg VITE_FIREBASE_PROJECT_ID=${env.VITE_FIREBASE_PROJECT_ID}",
"--build-arg VITE_FIREBASE_STORAGE_BUCKET=${env.VITE_FIREBASE_STORAGE_BUCKET}",
"--build-arg VITE_FIREBASE_MESSAGING_SENDER_ID=${env.VITE_FIREBASE_MESSAGING_SENDER_ID}",
"--build-arg VITE_FIREBASE_APP_ID=${env.VITE_FIREBASE_APP_ID}"
].join(' ')
def buildArgs = (!env.SUBDIR || env.SUBDIR.trim() == '')
? "-f Dockerfile ${firebaseBuildArgs} ."
: "-f ${env.SUBDIR}/Dockerfile ${firebaseBuildArgs} ${env.SUBDIR}"
def img = docker.build("${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}", buildArgs)
img.push()
img.push('latest')
}
}
}
}
stage('Deploy') {
steps {
withCredentials([usernamePassword(
credentialsId: CREDENTIALS_ID,
usernameVariable: 'DOCKER_USER',
passwordVariable: 'DOCKER_PASS'
)]) {
sh '''
export PATH=$PATH:/usr/libexec/docker/cli-plugins:/usr/bin:/usr/local/bin
echo "$DOCKER_PASS" | docker login ${REGISTRY} -u "$DOCKER_USER" --password-stdin
sed -i "/${SERVICE_NAME}:/,/image:/s|image:.*|image: ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}|" ${COMPOSE_FILE}
docker compose -f ${COMPOSE_FILE} pull ${SERVICE_NAME}
docker compose -f ${COMPOSE_FILE} up -d --force-recreate --remove-orphans
'''
}
}
}
}
}