diff --git a/circle.yml b/circle.yml index dad5df83ec38..9ff6c2db10d2 100644 --- a/circle.yml +++ b/circle.yml @@ -24,7 +24,8 @@ general: deployment: release: - tag: /(([a-z]+)-)?([0-9]+)\.([0-9]+)\.([0-9]+)/ + # See "scripts/circleci_tagged_pkg.py" for info on REGEX + tag: /(([a-z]+)-)*([0-9]+)\.([0-9]+)\.([0-9]+)/ owner: GoogleCloudPlatform commands: - pip install --upgrade twine diff --git a/scripts/circleci_tagged_pkg.py b/scripts/circleci_tagged_pkg.py index 0d6b7a3485dd..ba7c99f522d8 100644 --- a/scripts/circleci_tagged_pkg.py +++ b/scripts/circleci_tagged_pkg.py @@ -24,11 +24,16 @@ import sys -RE_TXT = r'^((?P[a-z]+)-)?([0-9]+)\.([0-9]+)\.([0-9]+)$' -TAG_RE = re.compile(RE_TXT) +TAG_RE = re.compile(r""" + ^ + (?P + (([a-z]+)-)*) # pkg-name-with-hyphens- (empty allowed) + ([0-9]+)\.([0-9]+)\.([0-9]+) # Version x.y.z (x, y, z all ints) + $ +""", re.VERBOSE) TAG_ENV = 'CIRCLE_TAG' ERROR_MSG = '%s env. var. not set' % (TAG_ENV,) -BAD_TAG_MSG = 'Invalid tag name: %s. Expected ' + RE_TXT +BAD_TAG_MSG = 'Invalid tag name: %s. Expected pkg-name-x.y.z' _SCRIPTS_DIR = os.path.dirname(__file__) ROOT_DIR = os.path.abspath(os.path.join(_SCRIPTS_DIR, '..')) @@ -52,7 +57,7 @@ def main(): if pkg_name is None: print(ROOT_DIR) else: - pkg_dir = pkg_name.replace('-', '_') + pkg_dir = pkg_name.rstrip('-').replace('-', '_') print(os.path.join(ROOT_DIR, pkg_dir))