Skip to content

Commit

Permalink
Fix flaky ordering of build command in the build_images.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
fchauvel committed Oct 31, 2019
1 parent 51735d9 commit e851fde
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 10 deletions.
2 changes: 1 addition & 1 deletion camp/realize.py
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ def _record_dependency_of(self, instance):
self._images.append(instance.feature_provider)
self._images.append(instance)
else:
self._images.append(instance)
self._images.insert(0, instance)
else:
if instance.feature_provider:
if instance.feature_provider not in self._images:
Expand Down
90 changes: 81 additions & 9 deletions tests/realize/test_docker.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,9 @@ def assert_no_image_generated(self, config_index):
class BuildImagesIsGenerated(BuilderTest):


def test_when_the_stack_has_more_than_two_components(self):
model = Model(
def setUp(self):
super().setUp()
self.model = Model(
[
Component("server",
provided_services=[Service("Awesome")],
Expand All @@ -106,16 +107,15 @@ def test_when_the_stack_has_more_than_two_components(self):
Goals(services=[Service("Awesome")])
)

server_0 = Instance("server_0", model.resolve("server"))
tomcat_0 = Instance("tomcat_0", model.resolve("tomcat"))
jdk_0 = Instance("jdk_0", model.resolve("jdk"))
self.server_0 = Instance("server_0", self.model.resolve("server"))
self.tomcat_0 = Instance("tomcat_0", self.model.resolve("tomcat"))
self.jdk_0 = Instance("jdk_0", self.model.resolve("jdk"))

server_0.feature_provider = tomcat_0
tomcat_0.feature_provider = jdk_0
configuration = Configuration(model, [server_0, tomcat_0, jdk_0])
self.server_0.feature_provider = self.tomcat_0
self.tomcat_0.feature_provider = self.jdk_0

self.build(configuration)

def verify_script(self):
expected_command_order = (
"docker build --force-rm --no-cache -t camp-jdk_0 ./jdk_0\n"
" docker build --force-rm --no-cache -t camp-tomcat_0 ./tomcat_0\n"
Expand All @@ -129,6 +129,78 @@ def test_when_the_stack_has_more_than_two_components(self):
])


def test_ordering_jdk_tc_svr(self):
configuration = Configuration(self.model, [self.jdk_0,
self.tomcat_0,
self.server_0])

self.build(configuration)

self.verify_script()


def test_ordering_jdk_svr_tc(self):
configuration = Configuration(self.model, [self.jdk_0,
self.server_0,
self.tomcat_0])

self.build(configuration)

self.verify_script()


def test_ordering_tc_jdk_svr(self):
configuration = Configuration(self.model,
[
self.tomcat_0,
self.jdk_0,
self.server_0,
])

self.build(configuration)

self.verify_script()


def test_ordering_tc_svr_jdk(self):
configuration = Configuration(self.model,
[
self.tomcat_0,
self.server_0,
self.jdk_0,
])

self.build(configuration)

self.verify_script()


def test_ordering_svr_jdk_tc(self):
configuration = Configuration(self.model,
[
self.server_0,
self.jdk_0,
self.tomcat_0,
])

self.build(configuration)

self.verify_script()


def test_ordering_svr_tc_jdk(self):
configuration = Configuration(self.model,
[
self.server_0,
self.tomcat_0,
self.jdk_0,
])

self.build(configuration)

self.verify_script()



class DockerFileGenerated(BuilderTest):

Expand Down

0 comments on commit e851fde

Please sign in to comment.