from common.utils import sync
-def search_last_build(build_url, released=False):
+def search_last_build(build_url, release_name, released=False):
"""Search the lastest build in build_url.
:param build_url: build url contains builds.
"""
res = requests.get(build_url)
if res.status_code != 200:
+ print 'access build_url: %s , error: %s' %(build_url, res.status_code)
return
soup = bs4.BeautifulSoup(res.text)
- pattern = re.compile('^tizen_[0-9]{8}.[0-9]+/$')
+ pattern_re = '^%s_[0-9]{8}.[0-9]+/$' % release_name
+ pattern = re.compile(pattern_re)
builds = [i.text for i in soup.find_all(href=pattern)]
if not builds:
print "Not find the any snapshot in %s, skip" % build_url
return os.path.join(build_url, last_build) if last_build else None
-def get_last_build(url_pub_base, repo_path):
+def get_last_build(url_pub_base, repo_path, release_name):
"""Return the second lastest build.
:param url_pub_base: the public base url.
:return: path. the second lastest build url.
"""
last_build_url = os.path.join(url_pub_base, repo_path[:repo_path.rfind('/')])
- return search_last_build(last_build_url)
+ return search_last_build(last_build_url, release_name)
def get_released_build(release_base, repo_path):
"""Return the lastest released build.
url_pub_base = content[0]['url_pub_base']
repo_path = content[0]['repo_path']
+ build_id = content[0]['buildid']
+ release_name, release_id = re.search(r'(\S*)_(\d{8}\.\d*)', \
+ build_id).groups()
diff_root = os.path.join(url_pub_base, repo_path)
current_repo_url = os.path.join(diff_root, 'repos', repo_name, 'packages')
context['repo'] = []
# generate current and last repo diff
- last_repo_base = get_last_build(url_pub_base, repo_path)
+ last_repo_base = get_last_build(url_pub_base, repo_path, release_name)
if last_repo_base:
last_repo_url = os.path.join(last_repo_base, 'repos', repo_name, 'packages')