From 46113070cd3b6739dfb1f072c6ed7f333374c2b4 Mon Sep 17 00:00:00 2001 From: vladislav <13thmerlin@gmail.com> Date: Fri, 11 Mar 2022 18:47:43 +0500 Subject: [PATCH 1/4] fix opa --- release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release.yaml b/release.yaml index 7d506a6a..1c193236 100644 --- a/release.yaml +++ b/release.yaml @@ -3,7 +3,7 @@ variables: .define_TAG: &define_TAG - > - if [[ -z $CI_COMMIT_TAG ]] && [[ $CI_COMMIT_TAG =~ ^v[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}$ ]]; + if [[ -z $CI_COMMIT_TAG ]] then TAG=$(echo $CI_COMMIT_TAG | sed "s/^v//"); elif [[ -z $CI_COMMIT_TAG ]] && [[ $TAG =~ ^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}$ ]]; -- GitLab From 5e72827017acfc66e76b67d648929896ca7863ce Mon Sep 17 00:00:00 2001 From: vladislav <13thmerlin@gmail.com> Date: Fri, 11 Mar 2022 19:15:26 +0500 Subject: [PATCH 2/4] fix pipeline --- release.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/release.yaml b/release.yaml index 1c193236..4b52759b 100644 --- a/release.yaml +++ b/release.yaml @@ -3,12 +3,12 @@ variables: .define_TAG: &define_TAG - > - if [[ -z $CI_COMMIT_TAG ]] + if [ $CI_COMMIT_TAG != "" ]; then TAG=$(echo $CI_COMMIT_TAG | sed "s/^v//"); - elif [[ -z $CI_COMMIT_TAG ]] && [[ $TAG =~ ^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}$ ]]; + elif [ $TAG != "" ]; then - echo $TAG; + TAG=$(echo $TAG | sed "s/^v//"); else exit 1; fi; -- GitLab From e1508dce7438a8c319d22926fa70f8ad30459801 Mon Sep 17 00:00:00 2001 From: Danylo Vanin Date: Fri, 11 Mar 2022 19:50:23 +0200 Subject: [PATCH 3/4] Fixed output file --- release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release.yaml b/release.yaml index 4b52759b..2e4ff405 100644 --- a/release.yaml +++ b/release.yaml @@ -1,5 +1,5 @@ variables: - OUTPUT_FILE: "artifacts_versions.tf" + OUTPUT_FILE: "./modules/osdu/artifacts_versions.tf" .define_TAG: &define_TAG - > -- GitLab From 780eaa8645d1153a79d880494727e395603da23d Mon Sep 17 00:00:00 2001 From: Danylo Vanin Date: Fri, 11 Mar 2022 20:44:55 +0200 Subject: [PATCH 4/4] Fix release.py interaction with env vars --- release.py | 41 +++++++++++++++++++++++++++++++---------- release.yaml | 3 +-- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/release.py b/release.py index 1b1b5b69..8dd9c9b2 100644 --- a/release.py +++ b/release.py @@ -1,8 +1,9 @@ import requests import os +import argparse class TagDumper: - services = { + SERVICE_REPOSITORIES = { "backup": "https://community.opengroup.org/api/v4/projects/380", "crs_catalog": "https://community.opengroup.org/api/v4/projects/21", "crs_conversion": " https://community.opengroup.org/api/v4/projects/22", @@ -33,22 +34,33 @@ class TagDumper: "workflow": "https://community.opengroup.org/api/v4/projects/146", } - desired_tag = os.getenv('TAG', '0.12') - output_filename = os.getenv('OUTPUT_FILE', 'artifacts_versions.tf') + def __init__( + self, + desired_tag: str, + output_filename: str + ) -> None: + self._desired_tag = desired_tag + self._output_filename = output_filename - def collect_repository_version_tags(self): - f = open(self.output_filename, 'w') + def collect_repository_version_tags(self) -> None: + """ + Collect tag for each service in SERVICE_REPOSITORIES, filtered by provided TAG argument. + """ + f = open(self._output_filename, 'w') f.write('locals {\n') - for k in self.services: - tag = self._get_tag_by_service(k, self.services[k], self.desired_tag) + for k in self.SERVICE_REPOSITORIES: + tag = self._get_tag_by_service(k, self.SERVICE_REPOSITORIES[k], self._desired_tag) f.write(' {0}_tag = "{1}"\n'.format(k, tag)) f.write('}\n') f.close() @staticmethod - def _get_tag_by_service( service, base_url, tag): + def _get_tag_by_service( service, base_url: str, tag: str) -> str: + """ + Collect tag for each service in SERVICE_REPOSITORIES, filtered by provided TAG argument. + """ r = requests.get(base_url + '/repository/tags?search=' + tag) data = r.json() @@ -58,6 +70,15 @@ class TagDumper: return data[0]['name'] -if __name__ == '__main__': - td = TagDumper() +def main(): + parser = argparse.ArgumentParser(description="Release Tags Collector") + parser.add_argument("-t", "--tag", type=str, required=True, help="Short tag to collect new versions from services (e.g. 0.13)") + parser.add_argument("-f", "--file", type=str, default="./modules/osdu/artifact_versions.tf", help="Path to output file (artifact_versions.tf)") + + args = parser.parse_args() + + td = TagDumper(desired_tag=args.tag, output_filename=args.file) td.collect_repository_version_tags() + +if __name__ == '__main__': + main() diff --git a/release.yaml b/release.yaml index 2e4ff405..4d04a172 100644 --- a/release.yaml +++ b/release.yaml @@ -20,9 +20,8 @@ collect-versions: entrypoint: [""] script: - *define_TAG - - TAG=${TAG%.*} - pip install requests - - python release.py + - python release.py -t ${TAG%.*} -f ${OUTPUT_FILE} - terraform fmt ${OUTPUT_FILE} artifacts: paths: -- GitLab