From 26c30a20f68441aa9eaa4f9b5b9b4263176336df Mon Sep 17 00:00:00 2001 From: Fabien Boucher Date: Feb 24 2020 10:25:14 +0000 Subject: source-to-tarball: better handling of computed release version --- diff --git a/roles/source-to-tarball/files/detect-source-version.py b/roles/source-to-tarball/files/detect-source-version.py index 8014647..4a1b3b8 100755 --- a/roles/source-to-tarball/files/detect-source-version.py +++ b/roles/source-to-tarball/files/detect-source-version.py @@ -2,6 +2,7 @@ import os import sys +import json import subprocess @@ -21,7 +22,7 @@ def execute(argv, capture=False, cwd=None, test=False): if not test: print("Command %s failed" % argv) raise RuntimeError() - return out + return out.decode() def get_repo_version(repo): @@ -33,8 +34,10 @@ def get_repo_version(repo): version = execute(["git", "rev-list", "--count", ref], capture=True, cwd=repo, test=True).strip() # Make sure rev-list version is lower than first tag - version = "0.0.0.0-dev%s" % version - return version.replace('-', '.') + version = "0.0.0.0-0.dev%s" % version + version, release = version.replace('-g', 'g').split('-') + release = '0.%s%%{?dist}' % release + return json.dumps([version, release]) if __name__ == "__main__": diff --git a/roles/source-to-tarball/tasks/main.yaml b/roles/source-to-tarball/tasks/main.yaml index 51a2bbc..4fa7d5d 100644 --- a/roles/source-to-tarball/tasks/main.yaml +++ b/roles/source-to-tarball/tasks/main.yaml @@ -13,6 +13,22 @@ set_fact: tarball: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/{{ package_name }}-HEAD.tgz" +- name: Detect version and release of source from git + script: + cmd: > + files/detect-source-version.py + {{ ansible_user_dir }}/{{ zuul.project.src_dir }} + register: cmd + +- name: Load json command output + set_fact: + cmd_data: "{{ cmd.stdout | from_json }}" + +- name: Set source_version and source_release + set_fact: + source_version: "{{ cmd_data[0] }}" + source_release: "{{ cmd_data[1] }}" + - block: - name: Detect version from specfile shell: > @@ -22,26 +38,12 @@ args: chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" - - name: Set source_version fact + - name: Override source_version fact set_fact: source_version: "{{ cmd.stdout|trim }}" when: version_from_specfile -- block: - - name: Detect source version from git - script: - cmd: > - files/detect-source-version.py - {{ ansible_user_dir }}/{{ zuul.project.src_dir }} - register: cmd - - - name: Set source_version fact - set_fact: - source_version: "{{ cmd.stdout|trim }}" - - when: not version_from_specfile - - name: Create the source tarball command: > tar -czf /tmp/HEAD.tgz @@ -60,6 +62,12 @@ regexp: "^[Vv]ersion:.*" replace: "Version: {{ source_version }}" +- name: Set specfile Release + replace: + path: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/{{ package_name }}.spec" + regexp: "^[Rr]elease:.*" + replace: "Release: {{ source_release }}" + - name: Set specfile Source0 replace: path: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/{{ package_name }}.spec"