def main(): env = BuildEnvironment(os.environ) proj = Project(env) # 1. Get Version of TizenFX version = '{}.{}'.format( conf.VERSION_PREFIX_MAP[env.category], proj.commit_count + 10000) print('[VERSION] {}'.format(version)) # 2. Restore Project proj.restore() # 3. Run DocFX sh('mono --assembly-loader=strict /usr/share/docfx/docfx.exe docs/docfx.json', cwd=proj.workspace) # 4. Make and push a commit to gh-pages branch set_git_configs(proj) sh(''' git branch -f gh-pages origin/gh-pages git checkout gh-pages git pull --rebase origin gh-pages mkdir -p {github_branch} cp -fr Artifacts/docs/* {github_branch}/ git add {github_branch}/ '''.format(github_branch=env.github_branch_name), cwd=proj.workspace) modified = sh('git diff --cached --numstat | wc -l', cwd=proj.workspace, return_stdout=True, print_stdout=False) if int(modified.strip()) > 0: sh(''' git commit -m {version} git push "https://{userpass}@github.com/{github_repo}.git" gh-pages '''.format(version=version, userpass=env.github_userpass, github_repo=env.github_repo))
def main(): env = BuildEnvironment(os.environ) if env.github_branch_name not in conf.BRANCH_API_LEVEL_MAP.keys(): print('{} branch is not a managed branch.\n'.format( env.github_branch_name)) return # Build project proj = Project(env) proj.build() # Extract API from the project apijson_file = os.path.join(proj.workspace, 'Artifacts/build.api.json') apitool.extract(proj, apijson_file) # Update APIDB category = conf.BRANCH_API_LEVEL_MAP[env.github_branch_name] db = APIDB(env) db.import_datafile(category, apijson_file)
def getProject(self, id): try: response = self.getResource("/projects/%s" % id, "GET") except requests.exceptions.HTTPError as ex: response = ex.response.json() raise SynergyError("error on retrieving the project (id=%r, " "msg=%s)" % (id, response["error"]["message"])) project = None if response: info = response["project"] project = Project() project.setId(info["id"]) project.setName(info["name"]) project.setEnabled(info["enabled"]) return project
def getProjects(self, usr_id=None, name=None, domain_id=None): if usr_id: try: response = self.getResource("users/%s/projects" % usr_id, "GET") except requests.exceptions.HTTPError as ex: response = ex.response.json() message = response["error"]["message"] raise SynergyError("error on retrieving the users's projects " "(id=%r): %s" % (usr_id, message)) else: data = {} if domain_id: data["domain_id"] = domain_id if name: data["name"] = name try: response = self.getResource("/projects", "GET", data=data) except requests.exceptions.HTTPError as ex: response = ex.response.json() raise SynergyError( "error on retrieving the projects list: %s" % response["error"]["message"]) projects = [] if response: projects_info = response["projects"] for info in projects_info: project = Project() project.setId(info["id"]) project.setName(info["name"]) project.setEnabled(info["enabled"]) projects.append(project) return projects
def main(): env = BuildEnvironment(os.environ) pr = PullRequest(env) proj = Project(env) if pr.target_branch not in conf.BRANCH_API_LEVEL_MAP.keys(): print('{} branch is not a managed branch.\n'.format(pr.target_branch)) return # Step 1: Set a label for API level detection to the pull request. pr.add_to_labels(conf.BRANCH_API_LEVEL_MAP[pr.target_branch]) # Step 2: Set pending status to all checkers. set_pending_to_all_checkers(pr, env) # Step 3: Run "Build Checker" run_build_checker(pr, proj, env) # Step 4: Run "API Checker" run_api_checker(pr, proj, env)
def getProjects(self, usr_id=None, name=None, domain_id=None): if usr_id: try: response = self.getResource( "users/%s/projects" % usr_id, "GET") except requests.exceptions.HTTPError as ex: response = ex.response.json() message = response["error"]["message"] raise SynergyError("error on retrieving the users's projects " "(id=%r): %s" % (usr_id, message)) else: data = {} if domain_id: data["domain_id"] = domain_id if name: data["name"] = name try: response = self.getResource("/projects", "GET", data=data) except requests.exceptions.HTTPError as ex: response = ex.response.json() raise SynergyError("error on retrieving the projects list: %s" % response["error"]["message"]) projects = [] if response: projects_info = response["projects"] for info in projects_info: project = Project() project.setId(info["id"]) project.setName(info["name"]) project.setEnabled(info["enabled"]) projects.append(project) return projects
def main(): env = BuildEnvironment(os.environ) proj = Project(env) # 1. Get Version of TizenFX env.version = '{}.{}'.format(conf.VERSION_PREFIX_MAP[env.category], proj.commit_count + 10000) print('[VERSION] {}'.format(env.version)) # 2. Build Project proj.build(with_analysis=False, dummy=True, pack=True) # 3. Push to MyGet if not env.skip_push_to_myget: proj.push_nuget_packages(env.myget_apikey, conf.MYGET_PUSH_FEED) # 4. Sync to Tizen Git Repository if not env.skip_push_to_tizen: set_git_configs(proj) push_to_tizen(env, proj)
def buildFromDB(self): connection = self.db_engine.connect() try: QUERY = "select id, name, share, TTL from project" result = connection.execute(QUERY) for row in result: project = Project() project.setId(row[0]) project.setName(row[1]) project.getShare().setValue(row[2]) project.setTTL(row[3]) project.setId(row[0]) project_id = project.getId() try: k_project = self.keystone_manager.getProject(project_id) if not k_project: self._removeProject(project) continue users = self.keystone_manager.getUsers(prj_id=project_id) for user in users: project.addUser(user) self.projects[project.getId()] = project self.notify(event_type="PROJECT_ADDED", project=project) except SynergyError as ex: LOG.info("the project %s seems not to exist anymore! " "(reason=%s)" % (project.getName(), ex.message)) try: self._removeProject(project, force=True) except Exception as ex: LOG.info(ex) except SQLAlchemyError as ex: raise SynergyError(ex.message) finally: connection.close() self.notify(event_type="PROJECT_DONE")