stage('Cleanup Older Files on Google Drive') { steps { echo "Cleaning up older files on Google Drive..." powershell """ # List all files in the Google Drive folder Write-Output "Listing all files in the folder ${params.GOOGLE_DRIVE_FOLDER} on Google Drive..." \$files = rclone lsf --files-only AzaionGoogleDrive:${params.GOOGLE_DRIVE_FOLDER} --format "tp" --max-depth 1 Write-Output "Files found on Google Drive:" Write-Output \$files # If files were found if (\$files.Count -gt 0) { # Sort the files by date in descending order \$filesSorted = \$files | Sort-Object -Descending # Keep only the 3 latest files \$filesToDelete = \$filesSorted | Select-Object -Skip 3 Write-Output "Files to delete (older than 3 latest):" Write-Output \$filesToDelete # If there are files to delete, remove them if (\$filesToDelete.Count -gt 0) { Write-Output "Deleting files: \$filesToDelete" # Create a temporary file to store the list of files to delete \$tempFile = [System.IO.Path]::GetTempFileName() \$filesToDelete | Out-File -FilePath \$tempFile -Encoding utf8 Write-Output "Temporary file created: \$tempFile" # Use rclone to delete the files Write-Output "Executing rclone delete..." rclone delete AzaionGoogleDrive:${params.GOOGLE_DRIVE_FOLDER} --files-from \$tempFile --drive-chunk-size 64M --progress # Clean up the temporary file Remove-Item -Path \$tempFile } else { Write-Output "No files to delete." } } else { Write-Output "No files found on Google Drive to clean up." } """ } }