def push(phase): """ Push release and meta images """ check_phase(phase) info("Pushing meta and release images ...") yml = lain_yaml(ignore_prepare=True) meta_version = yml.repo_meta_version() if meta_version is None: error("please git commit.") return None domain = get_domain(phase) registry = "registry.%s" % domain phase_meta_tag = docker.gen_image_name( yml.appname, 'meta', meta_version, registry) phase_release_tag = docker.gen_image_name( yml.appname, 'release', meta_version, registry) meta_code = docker.push(phase_meta_tag) release_code = docker.push(phase_release_tag) if meta_code or release_code: error("Error lain push.") sys.exit(1) else: info("Done lain push.") info("notifying lain push.") access_token = SSOAccess.get_token(phase) auth_header = get_auth_header(access_token) last_commit_id = fetch_last_commit_id(domain, yml.appname, auth_header) if last_commit_id is not None: notify_diffs(domain, yml.appname, last_commit_id, auth_header) else: warn("Notified Nothing!") info("Done notifying lain push.")
def build(push=False, release=False): """ Build release and meta images """ info("Building meta and release images ...") validate_only_warning() yml = lain_yaml() meta_version = yml.repo_meta_version() use_prepare = docker.exist(yml.img_names['prepare']) use_build = release and docker.exist(yml.img_names['build']) release_suc, release_name = yml.build_release(use_prepare, use_build) (meta_suc, meta_name) = (False, '') if not release_suc else yml.build_meta() if not (release_suc and meta_suc): sys.exit(1) if meta_version is None: warn("please git commit.") if push: if meta_version is None: error("need git commit SHA1.") return None tag_release_name = yml.tag_meta_version(release_name) docker.push(tag_release_name) tag_meta_name = yml.tag_meta_version(meta_name) docker.push(tag_meta_name) info("Done lain build.")
def push(phase): """ Push release and meta images """ check_phase(phase) info("Pushing meta and release images ...") yml = lain_yaml(ignore_prepare=True) meta_version = yml.repo_meta_version() if meta_version is None: error("please git commit.") return None domain = get_domain(phase) registry = "registry.%s" % domain phase_meta_tag = docker.gen_image_name(yml.appname, 'meta', meta_version, registry) phase_release_tag = docker.gen_image_name(yml.appname, 'release', meta_version, registry) meta_code = docker.push(phase_meta_tag) release_code = docker.push(phase_release_tag) if meta_code or release_code: error("Error lain push.") sys.exit(1) else: info("Done lain push.") info("notifying lain push.") access_token = SSOAccess.get_token(phase) auth_header = get_auth_header(access_token) last_commit_id = fetch_last_commit_id(domain, yml.appname, auth_header) if last_commit_id is not None: notify_diffs(domain, yml.appname, last_commit_id, auth_header) else: warn("Notified Nothing!") info("Done notifying lain push.")
def push(phase): """ Push release and meta images """ check_phase(phase) info("Pushing meta and release images ...") yml = lain_yaml(ignore_prepare=True) meta_version = yml.repo_meta_version() if meta_version is None: error("please git commit.") return None domain = get_domain(phase) registry = "registry.%s" % domain phase_meta_tag = docker.gen_image_name(yml.appname, 'meta', meta_version, registry) phase_release_tag = docker.gen_image_name(yml.appname, 'release', meta_version, registry) meta_code = docker.push(phase_meta_tag) release_code = docker.push(phase_release_tag) if meta_code or release_code: error("Error lain push.") sys.exit(1) else: info("Done lain push.")
def transfer_to(src_tag, dst_tag): if docker.pull(src_tag) != 0 or docker.tag( src_tag, dst_tag) != 0 or docker.push(dst_tag) != 0: return 1 return 0
def transfer_to(src_tag, dst_tag): if docker.pull(src_tag) != 0 or docker.tag(src_tag, dst_tag) != 0 or docker.push(dst_tag) != 0: return 1 return 0