Update Jenkinsfile

This commit is contained in:
2025-11-25 11:52:39 -06:00
parent 067965d983
commit c9b59737b9

82
Jenkinsfile vendored
View File

@@ -1,6 +1,4 @@
// Jenkinsfile for Rocky Man // Jenkinsfile for Rocky Man
// This pipeline uses Kubernetes agents to build and run the container
pipeline { pipeline {
agent { agent {
kubernetes { kubernetes {
@@ -70,8 +68,8 @@ spec:
steps { steps {
container('docker-cli') { container('docker-cli') {
sh ''' sh '''
docker build -t rocky-man:${BUILD_NUMBER} . docker build -t rocky-man:${BUILD_NUMBER} .
docker tag rocky-man:${BUILD_NUMBER} rocky-man:latest docker tag rocky-man:${BUILD_NUMBER} rocky-man:latest
''' '''
} }
} }
@@ -81,28 +79,31 @@ spec:
steps { steps {
container('docker-cli') { container('docker-cli') {
sh """ sh """
# Create output directories # Create output directories
mkdir -p ./html ./tmp mkdir -p ./html ./tmp
# Run the container to build man pages # Run the container to build man pages - FIXED ESCAPING
docker run --rm \ docker run --rm \\
-v "\$(pwd)/html:/app/html" \ -v \"\$(pwd)/html:/app/html\" \\
-v "\$(pwd)/tmp:/data/tmp" \ -v \"\$(pwd)/tmp:/data/tmp\" \\
rocky-man:${BUILD_NUMBER} \ rocky-man:${BUILD_NUMBER} \\
--versions ${params.VERSIONS} \ --versions ${params.VERSIONS} \\
--verbose --verbose
""" """
} }
} }
} }
//stage('Archive Artifacts') { stage('Archive Artifacts') {
// steps { steps {
// archiveArtifacts artifacts: 'html/**/*', fingerprint: true archiveArtifacts artifacts: 'html/**/*', fingerprint: true, allowEmptyArchive: true
// } }
//} }
stage('Upload to B2') { stage('Upload to B2') {
when {
expression { return params.B2_BUCKET_NAME != "" }
}
steps { steps {
container('b2') { container('b2') {
withCredentials([ withCredentials([
@@ -110,31 +111,35 @@ spec:
string(credentialsId: 'b2-app-key', variable: 'B2_APPLICATION_KEY') string(credentialsId: 'b2-app-key', variable: 'B2_APPLICATION_KEY')
]) { ]) {
sh ''' sh '''
# Modern B2 command (replaces deprecated authorize-account) # Modern B2 auth command
b2 account authorize-account-key \\ b2 account authorize-account-key \\
--applicationKeyId ${B2_APPLICATION_ID} \\ --applicationKeyId ${B2_APPLICATION_ID} \\
--key ${B2_APPLICATION_KEY} --key ${B2_APPLICATION_KEY}
# Sync HTML contents (not the directory) # Verify auth (should succeed)
b2 sync \\ b2 account get-account-info
--allowEmptySource \\
--compareVersions size \\ # Sync HTML contents
--skip-perms \\ b2 sync \\
--threads 10 \\ --allowEmptySource \\
./html/ \\ --compareVersions size \\
b2://${B2_BUCKET_NAME}/builds/${BUILD_NUMBER}/ --skip-perms \\
--threads 10 \\
# Optional: List the uploaded files to verify ./html/ \\
b2 ls b2://${B2_BUCKET_NAME}/builds/${BUILD_NUMBER} b2://${B2_BUCKET_NAME}/builds/${BUILD_NUMBER}/
# Verify upload
b2 ls b2://${B2_BUCKET_NAME}/builds/${BUILD_NUMBER}
''' '''
} }
} }
} }
} }
}
post { post {
success { success {
echo 'Build completed successfully and uploaded to B2!' echo 'Build completed and uploaded to B2!'
} }
failure { failure {
echo 'Build failed!' echo 'Build failed!'
@@ -142,9 +147,8 @@ spec:
cleanup { cleanup {
container('docker-cli') { container('docker-cli') {
sh ''' sh '''
# Clean up Docker images to save space docker rmi rocky-man:${BUILD_NUMBER} || true
docker rmi rocky-man:${BUILD_NUMBER} || true docker rmi rocky-man:latest || true
docker rmi rocky-man:latest || true
''' '''
} }
} }