Files
annotations/build/jenkins/GDriveUpload
T
2025-05-07 19:10:55 +03:00

66 lines
2.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
pipeline {
agent { label 'Win10-BuildMachine' }
parameters {
string(name: 'buildPath', defaultValue: 'C:/Jenkins/workspace/Azaion/suite', description: 'Path where the zip file is located')
}
environment {
GOOGLE_DRIVE_FOLDER = 'AzaionSuiteBuilds'
}
stages {
stage('Upload to Google Drive') {
steps {
script {
echo "Looking for ZIP in: ${params.buildPath}"
echo "Target Google Drive folder: ${env.GOOGLE_DRIVE_FOLDER}"
dir("${params.buildPath}") {
def zipFilename = readFile('created_zip.txt').trim()
if (!fileExists(zipFilename)) {
error "Zip file '${zipFilename}' not found in ${params.buildPath}"
}
// Check if file already exists on Google Drive
def alreadyExists = powershell(script: """
\$result = rclone ls remote:\"${env.GOOGLE_DRIVE_FOLDER}\" | Select-String "${zipFilename}"
if (\$result) { return 1 } else { return 0 }
""", returnStatus: true) == 1
if (alreadyExists) {
echo "Zip file '${zipFilename}' already exists on Google Drive. Skipping upload."
} else {
echo "Uploading '${zipFilename}' to Google Drive folder '${env.GOOGLE_DRIVE_FOLDER}'..."
powershell """
rclone copy \"${zipFilename}\" remote:\"${env.GOOGLE_DRIVE_FOLDER}\"
"""
}
// Retention logic keep only latest 5 ZIPs
echo "Cleaning up old ZIP files in Google Drive..."
powershell """
\$files = rclone lsf --files-only --format "t" --max-age 365d remote:\"${env.GOOGLE_DRIVE_FOLDER}\" | Sort-Object | Where-Object { \$_ -like "*.zip" }
if (\$files.Count -gt 5) {
\$filesToDelete = \$files | Select-Object -First (\$files.Count - 5)
foreach (\$file in \$filesToDelete) {
rclone delete remote:\"${env.GOOGLE_DRIVE_FOLDER}/\$file\"
}
}
"""
}
}
}
}
}
post {
success {
echo "Upload completed."
}
failure {
echo "Upload failed."
}
}
}