import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class ArtifactCleanup {
/**
* Cleans up artifacts (files) generated by API tasks.
*
* @param artifactDirectory The directory containing the artifacts.
* @param maxAgeInDays The maximum age (in days) of artifacts to keep.
*/
public static void cleanupArtifacts(String artifactDirectory, int maxAgeInDays) {
Path directory = Paths.get(artifactDirectory);
try {
// Get a list of all files in the directory.
List<Path> files = Files.walk(directory)
.filter(Files::isRegularFile)
.toList();
// Iterate through the files and delete those older than maxAgeInDays.
for (Path file : files) {
try {
long fileAgeInDays = java.time.Duration.between(java.time.Instant.now(), java.time.Instant.from(Files.getLastModifiedTime(file))).toDays();
if (fileAgeInDays > maxAgeInDays) {
Files.delete(file);
System.out.println("Deleted artifact: " + file.toString());
}
} catch (IOException e) {
System.err.println("Error deleting artifact " + file.toString() + ": " + e.getMessage());
}
}
} catch (IOException e) {
System.err.println("Error listing artifacts: " + e.getMessage());
}
}
public static void main(String[] args) {
// Example usage:
String artifactDir = "your_artifact_directory"; // Replace with your artifact directory
int maxAge = 7; // Keep artifacts for 7 days
cleanupArtifacts(artifactDir, maxAge);
}
}
Add your comment