build_ids = builder.build_with_koji(build_tag_prefix=koji_prefix, srpm_dir=TITO_DIR, scratch=True) builder.wait_for_completion(build_ids) if release_build: print "Performing koji release build" # Clean out the tito dir first builder.ensure_dir(TITO_DIR) spec_dir_set = set() for spec, dist in build_list: spec_dir = os.path.dirname(spec) if spec_dir not in spec_dir_set: tag_name = builder.get_package_nvr_from_spec(spec) # Don't tag this again if the tag already exists if not builder.does_git_tag_exist( builder.get_package_nvr_from_spec(spec), spec_dir): spec_dir_set.add(spec_dir) # make sure we are clean to merge forward before tagging print "validating merge forward for %s" % spec_dir git_branch = promote.get_current_git_upstream_branch(spec_dir) promotion_chain = promote.get_promotion_chain(spec_dir, git_branch) promote.check_merge_forward(spec_dir, promotion_chain) # Tito tag the new releases command = ['tito', 'tag', '--keep-version', '--no-auto-changelog'] subprocess.check_call(command, cwd=spec_dir) builder.build_srpm_from_spec(spec_dir, TITO_DIR, testing=False, dist=dist) build_ids = builder.build_with_koji(build_tag_prefix=koji_prefix, srpm_dir=TITO_DIR, scratch=False) builder.wait_for_completion(build_ids) for spec_dir in spec_dir_set:
component_list = [] spec_project_map = {} print "Getting git repos" for component in get_components(configuration): print "Cloning from github: %s" % component.get('git_url') branch_name = component['git_branch'] parent_branch = component.get('parent_branch', None) command = ['git', 'clone', component.get('git_url'), '--branch', branch_name] subprocess.call(command, cwd=working_dir) parent_branch = component.get('parent_branch', None) parent_branches['origin/%s' % branch_name] = parent_branch project_dir = os.path.join(working_dir, component['name']) # Check if this is a branch or a tag tag_exists = builder.does_git_tag_exist(branch_name, project_dir) component_list.append(component['name']) merge_forward[component['name']] = False if not tag_exists: merge_forward[component['name']] = True # Check if everything is merged forward print "Checking that everything is merged forward." git_branch = promote.get_current_git_upstream_branch(project_dir) promotion_chain = promote.get_promotion_chain(project_dir, git_branch, parent_branch=parent_branch) promote.check_merge_forward(project_dir, promotion_chain) # Update the version if one is specified in the config if 'version' in component: command = ['./update-version.py', '--version', component['version'], project_dir] subprocess.call(command, cwd=CI_DIR) command = ['git', 'commit', '-a', '-m', 'Bumping version to %s' % component['version']]
el6_supported = None print("Getting git repos") for component in builder.components(configuration): project_dir = builder.clone_branch(component) branch_name = component['git_branch'] parent_branch = component.get('parent_branch', None) parent_branches['origin/%s' % branch_name] = parent_branch if component['name'] == 'pulp': platform_version = parse_version( promote.to_python_version(component['version'])) el6_supported = platform_version <= parse_version('2.11') # Check if this is a branch or a tag tag_exists = builder.does_git_tag_exist(branch_name, project_dir) component_list.append(component['name']) merge_forward[component['name']] = False if not tag_exists: merge_forward[component['name']] = True # Check if everything is merged forward print("Checking that everything is merged forward.") git_branch = promote.get_current_git_upstream_branch(project_dir) promotion_chain = promote.get_promotion_chain( project_dir, git_branch, parent_branch=parent_branch) promote.check_merge_forward(project_dir, promotion_chain) # Modify the pulp spec for 2.12+ to build unsupported packages when requested # We do this here so that nightly builds can still test all packages on el6, but releases # only contain supported packages. Matching on > 2.11 instead of >= 2.12 since 2.12a1 is less # than 2.12.0.