summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author陆秋文 <[email protected]>2019-12-26 18:07:06 +0800
committer陆秋文 <[email protected]>2019-12-26 18:07:06 +0800
commit60b1134c72497b4f116f0c3721cdbedadb2e5943 (patch)
tree17bfa78554852f2e0289eb06338af758144298bb
parent83213dde95de729d60d496718b0e9ca9fe277312 (diff)
parente6c07a5114b0ebb095ca545f23fdceab21cc14b9 (diff)
Merge branch 'use-pulp-v3' into 'master'
增加自动仓库名称计算的脚本。 See merge request MESA_Platform/build-env!2
-rw-r--r--rpm_upload_repo_autosetup.py77
1 files changed, 77 insertions, 0 deletions
diff --git a/rpm_upload_repo_autosetup.py b/rpm_upload_repo_autosetup.py
new file mode 100644
index 0000000..5923345
--- /dev/null
+++ b/rpm_upload_repo_autosetup.py
@@ -0,0 +1,77 @@
+#!/usr/bin/env python3
+import os
+import re
+import logging
+import argparse
+
+
+def exact_version_in_develop_branch(commit_ref_name):
+ branch_name_re = re.match(r'develop-(\d+)\.(\d+)', commit_ref_name)
+ if branch_name_re is None:
+ return None
+
+ major_version = int(branch_name_re.group(1))
+ minor_version = int(branch_name_re.group(2))
+
+ logging.debug('in develop branch: %s, major_version: %d, minor_version: %d'
+ % (commit_ref_name, major_version, minor_version))
+
+ return major_version, minor_version
+
+
+def exact_version_in_release_branch(commit_ref_name):
+ branch_name_re = re.match(r'release-(\d+)\.(\d+)', commit_ref_name)
+ if branch_name_re is None:
+ return None
+
+ major_version = int(branch_name_re.group(1))
+ minor_version = int(branch_name_re.group(2))
+
+ logging.debug('in release branch: %s, major_version: %d, minor_version: %d'
+ % (commit_ref_name, major_version, minor_version))
+
+ return major_version, minor_version
+
+
+def exact_version_in_tag(commit_ref_name):
+ tag_name_re = re.match(r'v(\d+)\.(\d+)\.(\d+)', commit_ref_name)
+ if tag_name_re is None:
+ return None
+
+ major_version = int(tag_name_re.group(1))
+ minor_version = int(tag_name_re.group(2))
+ patch_version = int(tag_name_re.group(3))
+
+ logging.debug('in release tag: %s, major_version: %d, minor_version: %d, patch_version:%d'
+ % (commit_ref_name, major_version, minor_version, patch_version))
+
+ return major_version, minor_version, patch_version
+
+
+def main():
+ logging.basicConfig(level=logging.DEBUG)
+
+ parser = argparse.ArgumentParser(
+ description='RPP upload tools - repository')
+
+ parser.add_argument('project', help='project name')
+ parser.add_argument('commit', help='commit-ref')
+ args = parser.parse_args()
+
+ project_name = args.project
+ commit_ref_name = args.commit
+
+ logging.info('project_name: %s, commit_ref_name: %s' %
+ (project_name, commit_ref_name))
+
+ version = exact_version_in_develop_branch(commit_ref_name)
+ if version:
+ print('%s-%d.%d-testing' % (project_name, version[0], version[1]))
+
+ version = exact_version_in_tag(commit_ref_name)
+ if version:
+ print('%s-%d.%d-stable' % (project_name, version[0], version[1]))
+
+
+if __name__ == '__main__':
+ main()