ci: add Jenkinsfile to delete .png and .mp4 files from workspace every 15 days
This commit is contained in:
75
jenkins/removeMedia
Normal file
75
jenkins/removeMedia
Normal file
@@ -0,0 +1,75 @@
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
triggers {
|
||||
// Runs at midnight on the 1st and 16th of every month ≈ every 15 days
|
||||
cron('0 0 1,16 * *')
|
||||
}
|
||||
|
||||
options {
|
||||
buildDiscarder(logRotator(numToKeepStr: '10'))
|
||||
timestamps()
|
||||
timeout(time: 15, unit: 'MINUTES')
|
||||
}
|
||||
|
||||
environment {
|
||||
TARGET_DIR = '/var/lib/jenkins/workspace/'
|
||||
}
|
||||
|
||||
stages {
|
||||
|
||||
stage('Preview Files to Delete') {
|
||||
steps {
|
||||
echo "🔍 Scanning for .png and .mp4 files in: ${TARGET_DIR}"
|
||||
sh '''
|
||||
echo "---------------------------------------------------"
|
||||
echo "Files found:"
|
||||
find "$TARGET_DIR" -type f \\( -name "*.png" -o -name "*.mp4" \\) | while read -r file; do
|
||||
echo " [FOUND] $file"
|
||||
done
|
||||
echo "---------------------------------------------------"
|
||||
TOTAL=$(find "$TARGET_DIR" -type f \\( -name "*.png" -o -name "*.mp4" \\) | wc -l)
|
||||
echo "Total files to be deleted: $TOTAL"
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('Delete PNG and MP4 Files') {
|
||||
steps {
|
||||
echo "🗑️ Deleting .png and .mp4 files..."
|
||||
sh '''
|
||||
find "$TARGET_DIR" -type f \\( -name "*.png" -o -name "*.mp4" \\) -delete
|
||||
echo "✅ Deletion complete."
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('Verify Cleanup') {
|
||||
steps {
|
||||
echo "🔎 Verifying cleanup..."
|
||||
sh '''
|
||||
REMAINING=$(find "$TARGET_DIR" -type f \\( -name "*.png" -o -name "*.mp4" \\) | wc -l)
|
||||
echo "Remaining .png / .mp4 files: $REMAINING"
|
||||
if [ "$REMAINING" -eq 0 ]; then
|
||||
echo "✅ Workspace is clean. No media files remaining."
|
||||
else
|
||||
echo "⚠️ Warning: $REMAINING file(s) could not be deleted."
|
||||
exit 1
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
success {
|
||||
echo "🎉 Cleanup job completed successfully on $(date)."
|
||||
}
|
||||
failure {
|
||||
echo "❌ Cleanup job failed. Please check the logs above."
|
||||
}
|
||||
always {
|
||||
echo "📋 Job: ${env.JOB_NAME} | Build: #${env.BUILD_NUMBER} | Status: ${currentBuild.currentResult}"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user