1. import java.io.File;
  2. import java.io.IOException;
  3. import java.nio.file.Files;
  4. import java.nio.file.Path;
  5. import java.nio.file.Paths;
  6. import java.util.List;
  7. public class ArtifactCleanup {
  8. /**
  9. * Cleans up artifacts (files) generated by API tasks.
  10. *
  11. * @param artifactDirectory The directory containing the artifacts.
  12. * @param maxAgeInDays The maximum age (in days) of artifacts to keep.
  13. */
  14. public static void cleanupArtifacts(String artifactDirectory, int maxAgeInDays) {
  15. Path directory = Paths.get(artifactDirectory);
  16. try {
  17. // Get a list of all files in the directory.
  18. List<Path> files = Files.walk(directory)
  19. .filter(Files::isRegularFile)
  20. .toList();
  21. // Iterate through the files and delete those older than maxAgeInDays.
  22. for (Path file : files) {
  23. try {
  24. long fileAgeInDays = java.time.Duration.between(java.time.Instant.now(), java.time.Instant.from(Files.getLastModifiedTime(file))).toDays();
  25. if (fileAgeInDays > maxAgeInDays) {
  26. Files.delete(file);
  27. System.out.println("Deleted artifact: " + file.toString());
  28. }
  29. } catch (IOException e) {
  30. System.err.println("Error deleting artifact " + file.toString() + ": " + e.getMessage());
  31. }
  32. }
  33. } catch (IOException e) {
  34. System.err.println("Error listing artifacts: " + e.getMessage());
  35. }
  36. }
  37. public static void main(String[] args) {
  38. // Example usage:
  39. String artifactDir = "your_artifact_directory"; // Replace with your artifact directory
  40. int maxAge = 7; // Keep artifacts for 7 days
  41. cleanupArtifacts(artifactDir, maxAge);
  42. }
  43. }

Add your comment