Skip to content

Commit f5d1454

Browse files
author
Matthew Fisher
authored
feat(api): inject release metadata into application (#1080)
1 parent 7aaee55 commit f5d1454

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

rootfs/api/models/app.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -792,7 +792,10 @@ def _build_env_vars(self, release):
792792
# mix in default environment information deis may require
793793
default_env = {
794794
'DEIS_APP': self.id,
795-
'WORKFLOW_RELEASE': 'v{}'.format(release.version)
795+
'WORKFLOW_RELEASE': 'v{}'.format(release.version),
796+
'WORKFLOW_RELEASE_SUMMARY': release.summary,
797+
'WORKFLOW_RELEASE_CREATED_AT': str(release.created.strftime(
798+
settings.DEIS_DATETIME_FORMAT))
796799
}
797800

798801
# Check if it is a slug builder image.
@@ -803,6 +806,9 @@ def _build_env_vars(self, release):
803806
default_env['DEIS_MINIO_SERVICE_HOST'] = settings.MINIO_HOST
804807
default_env['DEIS_MINIO_SERVICE_PORT'] = settings.MINIO_PORT
805808

809+
if release.build.sha:
810+
default_env['SOURCE_VERSION'] = release.build.sha
811+
806812
# fetch application port and inject into ENV vars as needed
807813
port = release.get_port()
808814
default_env['PORT'] = port

rootfs/api/tests/test_app.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -582,16 +582,21 @@ def test_build_env_vars(self, mock_requests):
582582
url = "/v2/apps/{app.id}/builds".format(**locals())
583583
response = self.client.post(url, data)
584584
self.assertEqual(response.status_code, 201, response.data)
585+
time_created = app.release_set.latest().created
585586
self.assertEqual(
586587
app._build_env_vars(app.release_set.latest()),
587588
{
588589
'DEIS_APP': app.id,
589590
'WORKFLOW_RELEASE': 'v2',
590-
'PORT': 5000
591+
'PORT': 5000,
592+
'WORKFLOW_RELEASE_SUMMARY': 'autotest deployed autotest/example',
593+
'WORKFLOW_RELEASE_CREATED_AT': str(time_created.strftime(
594+
settings.DEIS_DATETIME_FORMAT))
591595
})
592596
data['sha'] = 'abc1234'
593597
response = self.client.post(url, data)
594598
self.assertEqual(response.status_code, 201, response.data)
599+
time_created = app.release_set.latest().created
595600
self.assertEqual(
596601
app._build_env_vars(app.release_set.latest()),
597602
{
@@ -601,7 +606,11 @@ def test_build_env_vars(self, mock_requests):
601606
'SLUG_URL': 'autotest/example',
602607
'BUILDER_STORAGE': None,
603608
'DEIS_MINIO_SERVICE_HOST': '127.0.0.1',
604-
'DEIS_MINIO_SERVICE_PORT': 80
609+
'DEIS_MINIO_SERVICE_PORT': 80,
610+
'SOURCE_VERSION': 'abc1234',
611+
'WORKFLOW_RELEASE_SUMMARY': 'autotest deployed abc1234',
612+
'WORKFLOW_RELEASE_CREATED_AT': str(time_created.strftime(
613+
settings.DEIS_DATETIME_FORMAT))
605614
})
606615

607616
def test_gather_app_settings(self, mock_requests):

0 commit comments

Comments
 (0)