コード例 #1
0
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))
コード例 #2
0
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)
コード例 #3
0
    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
コード例 #4
0
    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
コード例 #5
0
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)
コード例 #6
0
    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
コード例 #7
0
    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
コード例 #8
0
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)
コード例 #9
0
    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")
コード例 #10
0
    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")