From c32a01f9ebae026c1b7b8ba081411581453b4624 Mon Sep 17 00:00:00 2001 From: Jade Lovelace Date: Fri, 31 May 2024 16:35:13 -0700 Subject: Put into place initial release engineering This can release x86_64-linux binaries to staging, with ephemeral keys. I think it's good enough to review at least at this point, so we don't keep adding more stuff to it to make it harder to review. Change-Id: Ie95e8f35d1252f5d014e819566f170b30eda152e --- releng/environment.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 releng/environment.py (limited to 'releng/environment.py') diff --git a/releng/environment.py b/releng/environment.py new file mode 100644 index 000000000..643eb69d9 --- /dev/null +++ b/releng/environment.py @@ -0,0 +1,50 @@ +import dataclasses +import urllib.parse + +S3_HOST = 's3.lix.systems' +S3_ENDPOINT = 'https://s3.lix.systems' + +DEFAULT_STORE_URI_BITS = { + 'region': 'garage', + 'endpoint': 's3.lix.systems', + 'want-mass-query': 'true', + 'write-nar-listing': 'true', + 'ls-compression': 'zstd', + 'narinfo-compression': 'zstd', + 'compression': 'zstd', + 'parallel-compression': 'true', +} + + +@dataclasses.dataclass +class RelengEnvironment: + name: str + + aws_profile: str + cache_store_overlay: dict[str, str] + cache_bucket: str + releases_bucket: str + git_repo: str + + def cache_store_uri(self): + qs = DEFAULT_STORE_URI_BITS.copy() + qs.update(self.cache_store_overlay) + return self.cache_bucket + "?" + urllib.parse.urlencode(qs) + +STAGING = RelengEnvironment( + name='staging', + aws_profile='garage_staging', + cache_bucket='s3://staging-cache', + cache_store_overlay={ + 'secret-key': 'staging.key' + }, + releases_bucket='s3://staging-releases', + git_repo='ssh://git@git.lix.systems/lix-project/lix-releng-staging', +) + + +@dataclasses.dataclass +class S3Credentials: + name: str + id: str + secret_key: str -- cgit v1.2.3