def build(name=None, version=None, commit=None, branch=None): """ 打包 参数: name: 描述, 如:seo。最后生成project_name-x.x.x.x-seo.tar.gz commit: 指定commit版本 branch: 分支名称 version: 自定义版本号,如果为None则根据日期生成 commit和branch必须提供一个, 或者读取配置文件 """ if commit: check_out = commit elif branch: check_out = branch else: check_out = env.DEFAULT_BRANCH if not version: config.check('PROJECT') version = get_next_version(env.PROJECT) if name: version = '%s-%s' % (version, name) project_path = os.path.join(env.BUILD_PATH, env.PROJECT) if not files.exists(project_path): with(cd(env.BUILD_PATH)): git.clone('/'.join([env.PROJECT_OWNER, env.PROJECT])) with(cd(project_path)): git.checkout(check_out) # 在setup打包之前做进一步数据准备工作的hook if hasattr(env, 'PRE_BUILD_HOOK'): env.PRE_BUILD_HOOK() params = { 'release_time': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), 'git_version': git.get_version(), 'version': version, } fs.inplace_render(os.path.join(project_path, 'setup.py'), params) if hasattr(env, 'SETTINGS_BASE_FILE'): settings_file_path = os.path.join(project_path, *env.SETTINGS_BASE_FILE.split('/')) else: settings_file_path = os.path.join(project_path, env.PROJECT, 'settings.py') if not files.exists(settings_file_path): settings_file_path = os.path.join(project_path, env.PROJECT, 'settings', '__init__.py') if files.exists(settings_file_path): fs.inplace_render(settings_file_path, params) run("python setup.py sdist bdist_wheel upload -r internal")
def build(name=None, version=None, commit=None, branch=None): """ 打包 参数: name: 描述, 如:seo。最后生成project_name-x.x.x.x-seo.tar.gz commit: 指定commit版本 branch: 分支名称 version: 自定义版本号,如果为None则根据日期生成 commit和branch必须提供一个, 或者读取配置文件 """ if commit: check_out = commit elif branch: check_out = branch else: check_out = env.DEFAULT_BRANCH if not version: config.check('PROJECT') version = get_next_version(env.PROJECT) if name: version = '%s-%s' % (version, name) project_path = os.path.join(env.BUILD_PATH, env.PROJECT) if not files.exists(project_path): with (cd(env.BUILD_PATH)): git.clone('/'.join([env.PROJECT_OWNER, env.PROJECT])) with (cd(project_path)): git.checkout(check_out) # 在setup打包之前做进一步数据准备工作的hook if hasattr(env, 'PRE_BUILD_HOOK'): env.PRE_BUILD_HOOK() params = { 'release_time': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), 'git_version': git.get_version(), 'version': version, } fs.inplace_render(os.path.join(project_path, 'setup.py'), params) if hasattr(env, 'SETTINGS_BASE_FILE'): settings_file_path = os.path.join( project_path, *env.SETTINGS_BASE_FILE.split('/')) if files.exists(settings_file_path): fs.inplace_render(settings_file_path, params) else: settings_file_path = os.path.join(project_path, env.PROJECT, 'settings.py') if files.exists(settings_file_path): fs.inplace_render(settings_file_path, params) settings_dir_path = os.path.join(project_path, env.PROJECT, 'settings', '__init__.py') if files.exists(settings_dir_path): fs.inplace_render(settings_dir_path, params) run("python setup.py sdist upload -r internal")