Add signed runtime distribution pipeline
This commit is contained in:
@@ -77,6 +77,9 @@ class ReleaseConfig:
|
||||
version: str
|
||||
manifest_url: str
|
||||
manifest_sha256: str
|
||||
manifest_keyring_sha256: str
|
||||
manifest_signature_key_id: str
|
||||
composition_sha256: str
|
||||
api_image: str
|
||||
web_image: str
|
||||
|
||||
@@ -178,6 +181,9 @@ def default_spec(
|
||||
"version": version,
|
||||
"manifest_url": manifest_url,
|
||||
"manifest_sha256": manifest_sha256,
|
||||
"manifest_keyring_sha256": "",
|
||||
"manifest_signature_key_id": "",
|
||||
"composition_sha256": "",
|
||||
"api_image": api_image,
|
||||
"web_image": web_image,
|
||||
},
|
||||
@@ -314,6 +320,9 @@ def _release(raw: object) -> ReleaseConfig:
|
||||
"version",
|
||||
"manifest_url",
|
||||
"manifest_sha256",
|
||||
"manifest_keyring_sha256",
|
||||
"manifest_signature_key_id",
|
||||
"composition_sha256",
|
||||
"api_image",
|
||||
"web_image",
|
||||
},
|
||||
@@ -335,6 +344,27 @@ def _release(raw: object) -> ReleaseConfig:
|
||||
raise SpecError(
|
||||
"release.manifest_sha256 must be a lowercase SHA-256 hex digest"
|
||||
)
|
||||
manifest_keyring_sha256 = _optional_string(
|
||||
value, "manifest_keyring_sha256"
|
||||
).lower()
|
||||
if manifest_keyring_sha256 and not SHA256_PATTERN.fullmatch(
|
||||
manifest_keyring_sha256
|
||||
):
|
||||
raise SpecError(
|
||||
"release.manifest_keyring_sha256 must be a lowercase SHA-256 hex digest"
|
||||
)
|
||||
manifest_signature_key_id = _optional_string(
|
||||
value, "manifest_signature_key_id"
|
||||
)
|
||||
if manifest_signature_key_id and not re.fullmatch(
|
||||
r"[A-Za-z0-9][A-Za-z0-9._:-]{0,127}", manifest_signature_key_id
|
||||
):
|
||||
raise SpecError("release.manifest_signature_key_id is invalid")
|
||||
composition_sha256 = _optional_string(value, "composition_sha256").lower()
|
||||
if composition_sha256 and not SHA256_PATTERN.fullmatch(composition_sha256):
|
||||
raise SpecError(
|
||||
"release.composition_sha256 must be a lowercase SHA-256 hex digest"
|
||||
)
|
||||
api_image = _image(_string(value, "api_image"), "release.api_image")
|
||||
web_image = _image(_string(value, "web_image"), "release.web_image")
|
||||
return ReleaseConfig(
|
||||
@@ -342,6 +372,9 @@ def _release(raw: object) -> ReleaseConfig:
|
||||
version=version,
|
||||
manifest_url=manifest_url,
|
||||
manifest_sha256=manifest_sha256,
|
||||
manifest_keyring_sha256=manifest_keyring_sha256,
|
||||
manifest_signature_key_id=manifest_signature_key_id,
|
||||
composition_sha256=composition_sha256,
|
||||
api_image=api_image,
|
||||
web_image=web_image,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user