version v2
This commit is contained in:
59
set_version.py
Normal file
59
set_version.py
Normal file
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Utility script to set version environment variables for local development.
|
||||
This replaces the need for version.txt file creation.
|
||||
"""
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import json
|
||||
from datetime import datetime
|
||||
|
||||
def get_git_info():
|
||||
"""Get current git commit hash and branch"""
|
||||
try:
|
||||
# Get current commit hash
|
||||
commit_hash = subprocess.check_output(['git', 'rev-parse', 'HEAD'],
|
||||
text=True, stderr=subprocess.DEVNULL).strip()
|
||||
|
||||
# Get current branch
|
||||
branch = subprocess.check_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD'],
|
||||
text=True, stderr=subprocess.DEVNULL).strip()
|
||||
|
||||
# Get latest tag
|
||||
try:
|
||||
latest_tag = subprocess.check_output(['git', 'describe', '--tags', '--abbrev=0'],
|
||||
text=True, stderr=subprocess.DEVNULL).strip()
|
||||
except subprocess.CalledProcessError:
|
||||
latest_tag = 'unknown'
|
||||
|
||||
return {
|
||||
'commit': commit_hash,
|
||||
'branch': branch,
|
||||
'tag': latest_tag
|
||||
}
|
||||
except (subprocess.CalledProcessError, FileNotFoundError):
|
||||
return {
|
||||
'commit': 'unknown',
|
||||
'branch': 'unknown',
|
||||
'tag': 'unknown'
|
||||
}
|
||||
|
||||
def set_version_env():
|
||||
"""Set version environment variables"""
|
||||
git_info = get_git_info()
|
||||
|
||||
# Set environment variables
|
||||
os.environ['APP_VERSION'] = git_info['tag']
|
||||
os.environ['GIT_COMMIT'] = git_info['commit']
|
||||
os.environ['GIT_BRANCH'] = git_info['branch']
|
||||
os.environ['DEPLOYED_AT'] = datetime.utcnow().isoformat()
|
||||
|
||||
print("Version environment variables set:")
|
||||
print(f"APP_VERSION: {os.environ['APP_VERSION']}")
|
||||
print(f"GIT_COMMIT: {os.environ['GIT_COMMIT']}")
|
||||
print(f"GIT_BRANCH: {os.environ['GIT_BRANCH']}")
|
||||
print(f"DEPLOYED_AT: {os.environ['DEPLOYED_AT']}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
set_version_env()
|
||||
Reference in New Issue
Block a user