diff --git a/receivers/electron/scripts/deploy/deploy.py b/receivers/electron/scripts/deploy/deploy.py index 2aaa3cd..1b308a6 100644 --- a/receivers/electron/scripts/deploy/deploy.py +++ b/receivers/electron/scripts/deploy/deploy.py @@ -170,6 +170,11 @@ def generate_releases_json(artifact_version, delta_info): if current_version not in all_versions: all_versions.append(current_version) + if compare_versions(artifact_version.version, current_version) < 0 or \ + (artifact_version.channel != 'stable' and int(artifact_version.channel_version) < int(channel_current_versions[artifact_version.channel])): + print('Uploading older release, skipping release json generation...') + return + for root, _, files in os.walk(TEMP_DIR): # Only offer zip and delta updates. Other packages will update from zip packages for filename in filter(lambda f: f.endswith('.zip') or f.endswith('.delta'), files): diff --git a/receivers/electron/scripts/deploy/util.py b/receivers/electron/scripts/deploy/util.py index 14acf2f..48f26bc 100644 --- a/receivers/electron/scripts/deploy/util.py +++ b/receivers/electron/scripts/deploy/util.py @@ -14,6 +14,7 @@ ACCESS_KEY_ID = os.environ.get('R2_ACCESS_KEY_ID') SECRET_ACCESS_KEY = os.environ.get('R2_SECRET_ACCESS_KEY') BUCKET_NAME = os.environ.get('R2_BUCKET_NAME') +EXCLUDED_BUCKET_FILES = ['electron/releases_v1.json'] class S3Client: def __init__(self, cache_version_amount, excluded_delta_versions): # Note: Cloudflare R2 docs outdated, secret is not supposed to be hashed... @@ -34,7 +35,7 @@ class S3Client: list_response = self.s3.list_objects_v2(Bucket=BUCKET_NAME, Prefix='electron/') self.bucket_files = list_response.get('Contents', []) - bucket_files_versions = filter(lambda x: x['Key'] != 'electron/releases.json', self.bucket_files) + bucket_files_versions = filter(lambda x: x['Key'] not in EXCLUDED_BUCKET_FILES, self.bucket_files) self.bucket_versions_full = sorted(set(map(lambda x: x['Key'].split('/')[1], bucket_files_versions)), key=cmp_to_key(compare_versions), reverse=True) self.bucket_versions = self.bucket_versions_full if cache_version_amount < 0 else self.bucket_versions_full[:cache_version_amount] self.bucket_delta_versions = [v for v in self.bucket_versions if v not in excluded_delta_versions]