|
@@ -1,19 +1,23 @@
|
|
|
#!/usr/bin/python3
|
|
|
import json
|
|
|
+import re
|
|
|
import sys
|
|
|
|
|
|
from catalog_update.upgrade_strategy import semantic_versioning
|
|
|
|
|
|
|
|
|
+RE_STABLE_VERSION = re.compile(r'^[0-9]+\.[0-9]+\.[0-9]+$')
|
|
|
+
|
|
|
+
|
|
|
def newer_mapping(image_tags):
|
|
|
key = list(image_tags.keys())[0]
|
|
|
- # 21.1 is greater then 21.1.0 so we reverse sort bfeore doing semantic versioning
|
|
|
- version = semantic_versioning(sorted(image_tags[key], reverse=True))
|
|
|
+ tags = {t: t for t in image_tags[key] if RE_STABLE_VERSION.fullmatch(t)}
|
|
|
+ version = semantic_versioning(list(tags))
|
|
|
if not version:
|
|
|
return {}
|
|
|
|
|
|
return {
|
|
|
- 'tags': {key: version},
|
|
|
+ 'tags': {key: tags[version]},
|
|
|
'app_version': version,
|
|
|
}
|
|
|
|