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 main import get_app
|
||||||
from src.config import RevancedConfig
|
from src.config import RevancedConfig
|
||||||
from src.manager.github import GitHubManager
|
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:
|
def check_if_build_is_required() -> bool:
|
||||||
@@ -19,14 +19,20 @@ def check_if_build_is_required() -> bool:
|
|||||||
logger.info(f"Checking {app_name}")
|
logger.info(f"Checking {app_name}")
|
||||||
app_obj = get_app(config, app_name)
|
app_obj = get_app(config, app_name)
|
||||||
old_integration_version = GitHubManager(env).get_last_version(app_obj, integration_version_key)
|
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_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)
|
app_obj.download_patch_resources(config)
|
||||||
if GitHubManager(env).should_trigger_build(
|
if GitHubManager(env).should_trigger_build(
|
||||||
old_integration_version,
|
old_integration_version,
|
||||||
|
old_integration_source,
|
||||||
app_obj.resource["integrations"]["version"],
|
app_obj.resource["integrations"]["version"],
|
||||||
|
app_obj.patches_dl,
|
||||||
) or GitHubManager(env).should_trigger_build(
|
) or GitHubManager(env).should_trigger_build(
|
||||||
old_patches_version,
|
old_patches_version,
|
||||||
|
old_patches_source,
|
||||||
app_obj.resource["patches"]["version"],
|
app_obj.resource["patches"]["version"],
|
||||||
|
app_obj.integrations_dl,
|
||||||
):
|
):
|
||||||
caused_by = {
|
caused_by = {
|
||||||
"app_name": app_name,
|
"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}")
|
logger.info(f"New build can be triggered caused by {caused_by}")
|
||||||
needs_to_repatched.append(app_name)
|
needs_to_repatched.append(app_name)
|
||||||
logger.info(f"{needs_to_repatched} are need to repatched.")
|
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
|
print(",".join(needs_to_repatched)) # noqa: T201
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|||||||
+13
-1
@@ -10,7 +10,7 @@ from environs import Env
|
|||||||
|
|
||||||
from src.app import APP
|
from src.app import APP
|
||||||
from src.manager.release_manager import ReleaseManager
|
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):
|
class GitHubManager(ReleaseManager):
|
||||||
@@ -34,3 +34,15 @@ class GitHubManager(ReleaseManager):
|
|||||||
if data.get(app.app_name):
|
if data.get(app.app_name):
|
||||||
return str(data[app.app_name][resource_name])
|
return str(data[app.app_name][resource_name])
|
||||||
return "0"
|
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."""
|
"""Get last patched version."""
|
||||||
raise NotImplementedError
|
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."""
|
"""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}")
|
logger.info(f"New version {new_version}, Old version {old_version}")
|
||||||
try:
|
try:
|
||||||
return Version(new_version) > Version(old_version) # type: ignore[no-any-return]
|
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
|
status_code_200 = 200
|
||||||
resource_folder = "apks"
|
resource_folder = "apks"
|
||||||
branch_name = "changelogs"
|
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:
|
def update_changelog(name: str, response: dict[str, str]) -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user