diff options
author | Daniil Baturin <daniil@vyos.io> | 2020-04-09 12:08:43 +0300 |
---|---|---|
committer | Daniil Baturin <daniil@vyos.io> | 2020-04-09 12:08:43 +0300 |
commit | d64011558e32576eb521ba8cee8d9165897bbb60 (patch) | |
tree | 1c3c36b3cfe03a69720c6cf2a5fb7b743f415afe /scripts/make-version-file | |
parent | 967cf9df004aba4b883a2d35a01e159e10c3489c (diff) | |
download | vyos-build-d64011558e32576eb521ba8cee8d9165897bbb60.tar.gz vyos-build-d64011558e32576eb521ba8cee8d9165897bbb60.zip |
T2254: add fields for git branch, build type, and build comment to the version data.
Diffstat (limited to 'scripts/make-version-file')
-rwxr-xr-x | scripts/make-version-file | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/scripts/make-version-file b/scripts/make-version-file index fa632eed..a2828434 100755 --- a/scripts/make-version-file +++ b/scripts/make-version-file @@ -46,22 +46,33 @@ build_date = now.strftime("%a %d %b %Y %H:%M UTC") build_uuid = str(uuid.uuid4()) # Initialize Git object from our repository -repo = git.Repo('.') - -# Retrieve the Git commit ID of the repository, 14 charaters will be sufficient -build_git = repo.head.object.hexsha[:14] -# If somone played around with the source tree and the build is "dirty", mark it -if repo.is_dirty(): - build_git += "-dirty" +try: + repo = git.Repo('.') + + # Retrieve the Git commit ID of the repository, 14 charaters will be sufficient + build_git = repo.head.object.hexsha[:14] + # If somone played around with the source tree and the build is "dirty", mark it + if repo.is_dirty(): + build_git += "-dirty" + + # Retrieve git branch name + git_branch = repo.active_branch.name +except Exception as e: + print("Could not retrieve information from git: {0}".format(str(e))) + build_git = "" + git_branch = "" + git_commit = "" # Create a build version if build_config['build_type'] == 'development': try: + if not git_branch: + raise ValueError("git branch could not be determined") + # Load the branch to version mapping file with open('data/versions') as f: version_mapping = json.load(f) - git_branch = repo.active_branch.name branch_version = version_mapping[git_branch] version = "{0}-rolling-{1}".format(branch_version, build_timestamp) @@ -72,12 +83,20 @@ else: # Release build, use the version from ./configure arguments version = build_config['version'] +if build_config['build_type'] == 'development': + lts_build = False +else: + lts_build = True + version_data = { 'version': version, 'built_by': build_config['build_by'], 'built_on': build_date, 'build_uuid': build_uuid, - 'build_git': build_git + 'build_git': build_git, + 'build_branch': git_branch, + 'lts_build': lts_build, + 'build_comment': build_config['build_comment'] } os.makedirs(os.path.join(defaults.CHROOT_INCLUDES_DIR, 'usr/share/vyos'), exist_ok=True) @@ -85,8 +104,9 @@ with open(os.path.join(defaults.CHROOT_INCLUDES_DIR, 'usr/share/vyos/version.jso json.dump(version_data, f) # For backwards compatibility with 'add system image' script from older versions -# we need a file in old format so that script can find out the version of the image +# we need a file in the old format so that script can find out the version of the image # for upgrade +os.makedirs(os.path.join(defaults.CHROOT_INCLUDES_DIR, 'opt/vyatta/etc/'), exist_ok=True) with open(os.path.join(defaults.CHROOT_INCLUDES_DIR, 'opt/vyatta/etc/version'), 'w') as f: print("Version: {0}".format(version), file=f) |