Files
OpenNetworkLinux/tools/onlvi.py
Jeffrey Townsend 0b6da573ab Update default versioning scheme for development and release builds.
- Development builds will be marked with the branch and build id.
- Release builds will contain the specific release name and
  a simplified system issue string.
2018-03-14 16:31:31 +00:00

76 lines
2.3 KiB
Python

import subprocess
class OnlVersionImplementation(object):
PRODUCTS = [
{
"id" : "ONL",
# "version": "20YY-MM"
}
]
def __init__(self):
if 'version' in self.PRODUCTS[0]:
# Release builds have a specific version.
self.release = True
else:
# The current branch is used as the release version.
self.release = False
cmd = ('git', 'rev-parse', '--abbrev-ref', 'HEAD')
branch = subprocess.check_output(cmd).strip()
self.PRODUCTS[0]['version'] = branch
def V_OS_NAME(self, data):
return "Open Network Linux OS"
def V_BUILD_SHA1(self, data):
return data['build_sha1']
def V_BUILD_SHORT_SHA1(self, data):
return self.V_BUILD_SHA1(data)[0:7]
def V_BUILD_TIMESTAMP(self, data):
return data['build_timestamp']
def V_FNAME_BUILD_TIMESTAMP(self, data):
return self.V_BUILD_TIMESTAMP(data).replace(':', '')
def V_BUILD_ID(self, data):
return "%s-%s" % (self.V_BUILD_TIMESTAMP(data), self.V_BUILD_SHORT_SHA1(data))
def V_FNAME_BUILD_ID(self, data):
return "%s-%s" % (self.V_FNAME_BUILD_TIMESTAMP(data), self.V_BUILD_SHORT_SHA1(data))
def V_PRODUCT_ID_VERSION(self, data):
return data['product']['version']
def V_VERSION_ID(self, data):
return "ONL-%s" % (self.V_PRODUCT_ID_VERSION(data))
def V_FNAME_VERSION_ID(self, data):
return self.V_VERSION_ID(data)
def V_PRODUCT_VERSION(self, data):
return "ONL-%s" % (self.V_PRODUCT_ID_VERSION(data))
def V_FNAME_PRODUCT_VERSION(self, data):
return "ONL-%s" % (self.V_PRODUCT_ID_VERSION(data))
def V_VERSION_STRING(self, data):
return "%s %s, %s" % (self.V_OS_NAME(data), self.V_VERSION_ID(data), self.V_BUILD_ID(data))
def V_RELEASE_ID(self, data):
return "%s,%s" % (self.V_VERSION_ID(data), self.V_BUILD_ID(data))
def V_FNAME_RELEASE_ID(self, data):
return "%s-%s" % (self.V_VERSION_ID(data), self.V_FNAME_BUILD_ID(data))
def V_SYSTEM_COMPATIBILITY_VERSION(self, data):
return "2"
def V_ISSUE(self, data):
if self.release:
return "%s %s" % (self.V_OS_NAME(data), self.V_VERSION_ID(data))
else:
return self.V_VERSION_STRING(data)