summaryrefslogtreecommitdiff
path: root/scripts/make-version-file
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2019-05-11 14:22:17 +0200
committerChristian Poessinger <christian@poessinger.com>2019-05-13 22:03:10 +0200
commita51706c0467becdad29046475bfc803f9da0ad0f (patch)
tree06e7c7cd7550ea48fa40dd2712be32fa03996aad /scripts/make-version-file
parentcdfd361617676794d49dc6eb51302604d35caded (diff)
downloadvyos-build-a51706c0467becdad29046475bfc803f9da0ad0f.tar.gz
vyos-build-a51706c0467becdad29046475bfc803f9da0ad0f.zip
T1378: extend version file with Git commit ID
The Git commit ID will be crucial for the future when the full VyOS build can be reproduced by the one Git commit ID, thus start recording it in the version file. (cherry picked from commit e08da45e6d20f1f2ac38fff24e697a155ddac3ea)
Diffstat (limited to 'scripts/make-version-file')
-rwxr-xr-xscripts/make-version-file16
1 files changed, 12 insertions, 4 deletions
diff --git a/scripts/make-version-file b/scripts/make-version-file
index 95574722..4df2cb6c 100755
--- a/scripts/make-version-file
+++ b/scripts/make-version-file
@@ -43,7 +43,16 @@ build_timestamp = now.strftime("%Y%m%d%H%M")
build_date = now.strftime("%a %d %b %Y %H:%M UTC")
# Assign a (hopefully) unique identifier to the build (UUID)
-build_id = str(uuid.uuid4())
+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"
# Create a build version
if build_config['build_type'] == 'development':
@@ -52,7 +61,6 @@ if build_config['build_type'] == 'development':
with open('data/versions') as f:
version_mapping = json.load(f)
- repo = git.Repo('.')
git_branch = repo.active_branch.name
branch_version = version_mapping[git_branch]
@@ -68,10 +76,10 @@ version_data = {
'version': version,
'built_by': build_config['build_by'],
'built_on': build_date,
- 'build_id': build_id
+ 'build_uuid': build_uuid,
+ 'build_git': build_git
}
-
os.makedirs(os.path.join(defaults.CHROOT_INCLUDES_DIR, 'usr/share/vyos'), exist_ok=True)
with open(os.path.join(defaults.CHROOT_INCLUDES_DIR, 'usr/share/vyos/version.json'), 'w') as f:
json.dump(version_data, f)