test: assert reproducible provider image inputs
prd-number-check / require-numbered-prds (pull_request) Successful in 9s
test / image-input-builds (pull_request) Failing after 11s
tracker-policy-pr / check-pr (pull_request) Successful in 9s
test / integration-docker (pull_request) Failing after 40s
lint / lint (push) Failing after 58s
test / unit (pull_request) Successful in 6m24s
test / coverage (pull_request) Has been skipped
prd-number-check / require-numbered-prds (pull_request) Successful in 9s
test / image-input-builds (pull_request) Failing after 11s
tracker-policy-pr / check-pr (pull_request) Successful in 9s
test / integration-docker (pull_request) Failing after 40s
lint / lint (push) Failing after 58s
test / unit (pull_request) Successful in 6m24s
test / coverage (pull_request) Has been skipped
This commit is contained in:
@@ -12,14 +12,19 @@ _AGENT_DOCKERFILES = tuple(sorted(_CONTRIB_DIR.glob("*/Dockerfile")))
|
||||
|
||||
|
||||
class TestBuiltinAgentImages(unittest.TestCase):
|
||||
def test_all_use_debian_trixie_stable(self):
|
||||
def test_all_share_one_digest_pinned_node_trixie_base(self):
|
||||
self.assertTrue(_AGENT_DOCKERFILES)
|
||||
bases = []
|
||||
for dockerfile in _AGENT_DOCKERFILES:
|
||||
with self.subTest(provider=dockerfile.parent.name):
|
||||
self.assertRegex(
|
||||
match = re.search(
|
||||
r"(?m)^FROM "
|
||||
r"(node:22\.\d+\.\d+-trixie-slim@sha256:[0-9a-f]{64})\s*$",
|
||||
dockerfile.read_text(),
|
||||
r"(?m)^FROM node:22-trixie-slim\s*$",
|
||||
)
|
||||
self.assertIsNotNone(match)
|
||||
bases.append(match.group(1))
|
||||
self.assertEqual(1, len(set(bases)))
|
||||
|
||||
def test_none_install_podman(self):
|
||||
# podman lives in the nested-containers derived layer (nested_containers.py),
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from unittest.mock import MagicMock, patch
|
||||
@@ -21,6 +22,7 @@ from bot_bottle.manifest import ManifestIndex
|
||||
|
||||
_URL = "http://supervise:9100/"
|
||||
_PI_DOCKERFILE = Path(__file__).resolve().parents[2] / "bot_bottle/contrib/pi/Dockerfile"
|
||||
_PI_PACKAGE_JSON = _PI_DOCKERFILE.with_name("package.json")
|
||||
|
||||
|
||||
def _make_bottle(exec_result: ExecResult | None = None) -> MagicMock:
|
||||
@@ -209,9 +211,13 @@ class TestPiSuperviseMcp(unittest.TestCase):
|
||||
|
||||
|
||||
class TestPiDockerfile(unittest.TestCase):
|
||||
def test_installs_pi_cwd_at_build_time(self):
|
||||
def test_installs_exact_pi_cwd_from_the_committed_lock(self):
|
||||
dockerfile = _PI_DOCKERFILE.read_text()
|
||||
self.assertIn("pi install npm:@harms-haus/pi-cwd", dockerfile)
|
||||
package = json.loads(_PI_PACKAGE_JSON.read_text())
|
||||
version = package["dependencies"]["@harms-haus/pi-cwd"]
|
||||
self.assertRegex(version, r"^\d+\.\d+\.\d+$")
|
||||
self.assertIn("npm ci --omit=dev", dockerfile)
|
||||
self.assertNotIn("pi install", dockerfile)
|
||||
|
||||
def test_prepares_pi_extension_state_dirs_and_tmp_for_node(self):
|
||||
dockerfile = _PI_DOCKERFILE.read_text()
|
||||
|
||||
Reference in New Issue
Block a user