Merge branch 'master' of github.com:ail-project/ail-framework

This commit is contained in:
terrtia 2024-03-08 13:54:34 +01:00
commit 7acac4dc0c
No known key found for this signature in database
GPG key ID: 1E1B1F50D84613D0

View file

@ -3,6 +3,7 @@ import requests
import subprocess import subprocess
import re import re
import os import os
import shutil
from time import sleep from time import sleep
from typing import List, Optional from typing import List, Optional
from pathlib import Path from pathlib import Path
@ -70,6 +71,14 @@ class Repo:
except Exception as e: except Exception as e:
print(f"Failed to run {cmd} for {self.id}: {e}") print(f"Failed to run {cmd} for {self.id}: {e}")
def cleanup(self, num_to_keep: int) -> None:
files = os.listdir(self.outputdir)
repo_images = [f for f in files if f.startswith(self.name)]
if len(repo_images) > num_to_keep:
repo_images.sort(key=lambda x: os.path.getmtime(os.path.join(self.outputdir, x)))
for image in repo_images[:-num_to_keep]:
shutil.rmtree(os.path.join(self.outputdir, image))
class GitHub(Repo): class GitHub(Repo):
"""Class for tracking GitHub repositories.""" """Class for tracking GitHub repositories."""
@ -126,8 +135,10 @@ def main():
while True: while True:
for repo in repos: for repo in repos:
repo.build() repo.build()
repo.cleanup(num_to_keep=3)
for package in aptpkg: for package in aptpkg:
package.build() package.build()
repo.cleanup(num_to_keep=3)
sleep(config["check_interval"]) sleep(config["check_interval"])
if __name__ == "__main__": if __name__ == "__main__":