Skip to content

Commit c40585e

Browse files
author
smothiki
committed
feat(workflow): add build_type in extra args to differentiate build types
1 parent 8d5068a commit c40585e

3 files changed

Lines changed: 19 additions & 10 deletions

File tree

rootfs/api/models.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from rest_framework.authtoken.models import Token
2727

2828
from registry import publish_release
29-
from api.utils import dict_diff, dict_merge, fingerprint, generate_app_name
29+
from api.utils import dict_diff, dict_merge, fingerprint, generate_app_name, app_build_type
3030

3131

3232
User = settings.AUTH_USER_MODEL
@@ -313,6 +313,7 @@ def scale(self, user, structure): # noqa
313313

314314
def _scale_containers(self, scale_types, to_remove):
315315
release = self.release_set.latest()
316+
build_type = app_build_type(release)
316317
for scale_type in scale_types:
317318
image = release.image
318319
version = "v{}".format(release.version)
@@ -325,6 +326,7 @@ def _scale_containers(self, scale_types, to_remove):
325326
'aname': self.id,
326327
'num': scale_types[scale_type],
327328
'app_type': scale_type,
329+
'build_type': build_type,
328330
'healthcheck': release.config.healthcheck()
329331
}
330332

@@ -423,6 +425,7 @@ def deploy(self, user, release):
423425
self._default_scale(user, release)
424426

425427
def _deploy_app(self, scale_types, release, existing):
428+
build_type = app_build_type(release)
426429
for scale_type in scale_types:
427430
image = release.image
428431
version = "v{}".format(release.version)
@@ -435,6 +438,7 @@ def _deploy_app(self, scale_types, release, existing):
435438
'num': 0,
436439
'version': version,
437440
'app_type': scale_type,
441+
'build_type': build_type,
438442
'healthcheck': release.config.healthcheck()
439443
}
440444

rootfs/api/utils.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,15 @@ def fingerprint(key):
109109
return ':'.join(a + b for a, b in zip(fp_plain[::2], fp_plain[1::2]))
110110

111111

112+
def app_build_type(release):
113+
if not release.build.dockerfile:
114+
if not release.build.sha:
115+
return "deispull"
116+
else:
117+
return "buildpack"
118+
return "dockerfile"
119+
120+
112121
def dict_merge(origin, merge):
113122
"""
114123
Recursively merges dict's. not just simple a["key"] = b["key"], if

rootfs/scheduler/__init__.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -604,15 +604,11 @@ def _create_rc(self, name, image, command, **kwargs): # noqa
604604

605605
# Check if it is a slug builder image.
606606
# Example format: golden-earrings:git-5450cbcdaaf9afe6fadd219c94ac9c449bd62413s
607-
image_name = image[image.index(':')+1:]
608-
if '-' in image_name:
609-
vcs, sha = image_name.split('-')
610-
if vcs == 'git' and len(sha) in [8, 40] and app_type == 'web':
611-
imgurl = 'http://{}/git/home/{}/push/slug.tgz'.format(
612-
settings.S3EP,
613-
image
614-
)
615-
TEMPLATE = RCB_TEMPLATE
607+
if kwargs.get('build_type', {}) == "buildpack":
608+
imgurl = 'http://{}/git/home/{}/push/slug.tgz'.format(
609+
settings.S3EP,
610+
image)
611+
TEMPLATE = RCB_TEMPLATE
616612

617613
l = {
618614
"name": name,

0 commit comments

Comments
 (0)