Skip to content

Commit fd45d5d

Browse files
committed
fix stack
1 parent e900e15 commit fd45d5d

2 files changed

Lines changed: 60 additions & 3 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,24 @@ jobs:
5454
ComposeRunnerImageRepositoriesStack \
5555
--require-approval never
5656
57+
- name: Verify ComposeRunnerStack does not synthesize CDK Docker assets
58+
working-directory: infra/cdk
59+
env:
60+
VERSION: ${{ github.event.release.tag_name }}
61+
run: |
62+
source .venv/bin/activate
63+
rm -rf /tmp/compose-runner-cdk-verify
64+
cdk synth \
65+
ComposeRunnerStack \
66+
--output /tmp/compose-runner-cdk-verify \
67+
-c composeRunnerVersion=${VERSION} >/dev/null
68+
jq -e '(.dockerImages // {}) | length == 0' \
69+
/tmp/compose-runner-cdk-verify/ComposeRunnerStack.assets.json >/dev/null || {
70+
echo "ComposeRunnerStack synthesized Docker image assets; deployment would require the CDK bootstrap ECR repository."
71+
cat /tmp/compose-runner-cdk-verify/ComposeRunnerStack.assets.json
72+
exit 1
73+
}
74+
5775
- name: Log in to Amazon ECR
5876
run: |
5977
AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)

infra/cdk/tests/test_compose_runner_stack.py

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,25 @@
11
from __future__ import annotations
22

33
import json
4+
import sys
5+
import tempfile
46
import unittest
7+
from pathlib import Path
58

6-
import aws_cdk as cdk
7-
from aws_cdk.assertions import Template
9+
try:
10+
import aws_cdk as cdk
11+
from aws_cdk.assertions import Template
12+
except ModuleNotFoundError:
13+
cdk = None
14+
Template = None
815

9-
from stacks import ComposeRunnerImageRepositoriesStack, ComposeRunnerStack
16+
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
1017

18+
if cdk is not None:
19+
from stacks import ComposeRunnerImageRepositoriesStack, ComposeRunnerStack
1120

21+
22+
@unittest.skipIf(cdk is None, "aws_cdk is not installed in this test environment")
1223
class ComposeRunnerStackImageConfigTest(unittest.TestCase):
1324
def test_stack_uses_explicit_ecr_repositories(self) -> None:
1425
app = cdk.App(context={"composeRunnerVersion": "0.7.8"})
@@ -42,6 +53,34 @@ def test_stack_uses_explicit_ecr_repositories(self) -> None:
4253
self.assertNotIn("cdk-hnb659fds-container-assets", app_template_json)
4354
self.assertNotIn("AssetParameters", app_template_json)
4455

56+
def test_cloud_assembly_does_not_include_docker_image_assets(self) -> None:
57+
with tempfile.TemporaryDirectory() as output_dir:
58+
app = cdk.App(
59+
context={"composeRunnerVersion": "0.7.8"},
60+
outdir=output_dir,
61+
)
62+
63+
image_repositories_stack = ComposeRunnerImageRepositoriesStack(
64+
app,
65+
"ComposeRunnerImageRepositoriesStack",
66+
env=cdk.Environment(account="631329474511", region="us-east-1"),
67+
)
68+
69+
ComposeRunnerStack(
70+
app,
71+
"ComposeRunnerStack",
72+
ecs_image_repository=image_repositories_stack.ecs_image_repository,
73+
lambda_image_repository=image_repositories_stack.lambda_image_repository,
74+
env=cdk.Environment(account="631329474511", region="us-east-1"),
75+
)
76+
77+
app.synth()
78+
79+
with open(f"{output_dir}/ComposeRunnerStack.assets.json", encoding="utf-8") as manifest_file:
80+
assets_manifest = json.load(manifest_file)
81+
82+
self.assertEqual(assets_manifest.get("dockerImages", {}), {})
83+
4584

4685
if __name__ == "__main__":
4786
unittest.main()

0 commit comments

Comments
 (0)