mirror of
https://github.com/sotam0316/docker-py-revanced.git
synced 2026-04-25 03:48:37 +09:00
✨ Run builder when source is changed.
This commit is contained in:
committed by
Nikhil Badyal
parent
5895e8ca60
commit
d276696689
@@ -6,7 +6,7 @@ from loguru import logger
|
||||
from main import get_app
|
||||
from src.config import RevancedConfig
|
||||
from src.manager.github import GitHubManager
|
||||
from src.utils import default_build, integration_version_key, patches_version_key
|
||||
from src.utils import default_build, integration_version_key, integrations_dl_key, patches_dl_key, patches_version_key
|
||||
|
||||
|
||||
def check_if_build_is_required() -> bool:
|
||||
@@ -19,14 +19,20 @@ def check_if_build_is_required() -> bool:
|
||||
logger.info(f"Checking {app_name}")
|
||||
app_obj = get_app(config, app_name)
|
||||
old_integration_version = GitHubManager(env).get_last_version(app_obj, integration_version_key)
|
||||
old_integration_source = GitHubManager(env).get_last_version_source(app_obj, integrations_dl_key)
|
||||
old_patches_version = GitHubManager(env).get_last_version(app_obj, patches_version_key)
|
||||
old_patches_source = GitHubManager(env).get_last_version_source(app_obj, patches_dl_key)
|
||||
app_obj.download_patch_resources(config)
|
||||
if GitHubManager(env).should_trigger_build(
|
||||
old_integration_version,
|
||||
old_integration_source,
|
||||
app_obj.resource["integrations"]["version"],
|
||||
app_obj.patches_dl,
|
||||
) or GitHubManager(env).should_trigger_build(
|
||||
old_patches_version,
|
||||
old_patches_source,
|
||||
app_obj.resource["patches"]["version"],
|
||||
app_obj.integrations_dl,
|
||||
):
|
||||
caused_by = {
|
||||
"app_name": app_name,
|
||||
@@ -42,7 +48,7 @@ def check_if_build_is_required() -> bool:
|
||||
logger.info(f"New build can be triggered caused by {caused_by}")
|
||||
needs_to_repatched.append(app_name)
|
||||
logger.info(f"{needs_to_repatched} are need to repatched.")
|
||||
if len(needs_to_repatched) > 0:
|
||||
if needs_to_repatched:
|
||||
print(",".join(needs_to_repatched)) # noqa: T201
|
||||
return True
|
||||
return False
|
||||
|
||||
+13
-1
@@ -10,7 +10,7 @@ from environs import Env
|
||||
|
||||
from src.app import APP
|
||||
from src.manager.release_manager import ReleaseManager
|
||||
from src.utils import branch_name, updates_file, updates_file_url
|
||||
from src.utils import app_dump_key, branch_name, updates_file, updates_file_url
|
||||
|
||||
|
||||
class GitHubManager(ReleaseManager):
|
||||
@@ -34,3 +34,15 @@ class GitHubManager(ReleaseManager):
|
||||
if data.get(app.app_name):
|
||||
return str(data[app.app_name][resource_name])
|
||||
return "0"
|
||||
|
||||
def get_last_version_source(self: Self, app: APP, resource_name: str) -> str:
|
||||
"""Get last patched version."""
|
||||
if os.getenv("DRY_RUN", default=None):
|
||||
with Path(updates_file).open() as url:
|
||||
data = json.load(url)
|
||||
else:
|
||||
with urllib.request.urlopen(self.update_file_url) as url:
|
||||
data = json.load(url)
|
||||
if data.get(app.app_name):
|
||||
return str(data[app.app_name][app_dump_key][resource_name])
|
||||
return "0"
|
||||
|
||||
@@ -15,8 +15,11 @@ class ReleaseManager(object):
|
||||
"""Get last patched version."""
|
||||
raise NotImplementedError
|
||||
|
||||
def should_trigger_build(self: Self, old_version: str, new_version: str) -> bool:
|
||||
def should_trigger_build(self: Self, old_version: str, old_source: str, new_version: str, new_source: str) -> bool:
|
||||
"""Function to check if we should trigger a build."""
|
||||
if old_source != new_source:
|
||||
logger.info(f"Trigger build because old source {old_source}, is different from new source {new_source}")
|
||||
return True
|
||||
logger.info(f"New version {new_version}, Old version {old_version}")
|
||||
try:
|
||||
return Version(new_version) > Version(old_version) # type: ignore[no-any-return]
|
||||
|
||||
@@ -59,6 +59,9 @@ implement_method = "Please implement the method"
|
||||
status_code_200 = 200
|
||||
resource_folder = "apks"
|
||||
branch_name = "changelogs"
|
||||
app_dump_key = "app_dump"
|
||||
patches_dl_key = "patches_dl"
|
||||
integrations_dl_key = "integrations_dl"
|
||||
|
||||
|
||||
def update_changelog(name: str, response: dict[str, str]) -> None:
|
||||
|
||||
Reference in New Issue
Block a user