예제 #1
0
    def get_values(self):
        def process_output(myself, log: Logger, line: str, num: int):
            if '[deprecation]' in line:
                self.hit(re.sub(r'(.*java:)\[\d+,\d+\] \[deprecation\]( .*)', r'\1\2',
                    re.sub(r'\s*\[WARNING\]\s+' , '', line.replace(os.getcwd() + '/', '').replace('[WARNING]', ''))
                ))
                if self.log.is_trace():
                    self.add_to_stats(line)
                return self.verbose or self.log.is_trace()

            return line.startswith("[INFO] Building Atlassian") or line.startswith('[ERROR]') or self.log.is_trace()

        maven = MavenCallable()
        maven.phase('clean').phase('test-compile').profile('jira-metrics').profile('ondemand')
        maven.property('jira.exclude.bundled.plugins')
        maven.option('--no-plugin-updates')
        if self.log.is_trace():
            maven.option('-X')
        self.log.info('Compiling workspace to find deprecated methods usage...')
        maven.process_output = types.MethodType(process_output, maven)

        super().pre_files_scan('irrelevant')
        maven_return_code = self.run_maven(maven)
        super().post_files_scan('irrelevant')

        if maven_return_code != MavenCallable.success:
            raise MavenExecutionException

        self.log.trace(
            json.JSONEncoder(indent=True).encode(sorted(self.deprecated_stats.items(), key=operator.itemgetter(1))))
        self.log.info('Compilation finished.')
        return super().get_values() if maven.returncode == 0 else {}
예제 #2
0
def general_func_test_runner(args, additional_options=None):
    if not additional_options: additional_options = {}
    maven = MavenCallable(args)
    maven.projects = ['jira-distribution/jira-func-tests-runner']
    maven.option('-am')
    maven.profile('distribution')
    maven.phase('verify')
    maven.properties.update(additional_options)
    maven.property('system.bamboo.agent.home', os.path.abspath(os.sep.join(['jira-distribution', 'jira-func-tests-runner', 'target'])))
    return maven
예제 #3
0
def ual_int_func_test_runner(args):
    maven = MavenCallable(args)
    maven.projects = ['jira-distribution/jira-webapp-dist', 'jira-distribution/jira-integration-tests']
    maven.option('-am')
    maven.profile('distribution')
    maven.phase('verify')
    maven.properties.update({'maven.test.unit.skip': 'true',
                             'jira.security.disabled': 'true',
                             'java.awt.headless': 'true',
                             'jira.minify.skip': 'true',
                             'func.mode.plugins': 'true'})
    return maven
예제 #4
0
def webdriver_test_runner(args):
    maven = MavenCallable(args)
    maven.projects = ['jira-webdriver-tests']
    maven.option('-am')
    maven.profile('jmake-webdriver-tests')
    maven.phase('test')
    maven.properties.update({'failIfNoTests': 'false',
                             'maven.test.unit.skip': 'true',
                             'system.bamboo.agent.home': os.path.abspath(os.sep.join(['jira-distribution', 'jira-webdriver-tests-runner', 'target']))
    })
    if args.tests is not None:
        maven.properties.update({'test': args.tests})
    return maven
예제 #5
0
def general_func_test_runner(args, additional_options=None):
    if not additional_options: additional_options = {}
    maven = MavenCallable(args)
    maven.projects = ['jira-distribution/jira-func-tests-runner']
    maven.option('-am')
    maven.profile('distribution')
    maven.phase('verify')
    maven.properties.update(additional_options)
    maven.property(
        'system.bamboo.agent.home',
        os.path.abspath(
            os.sep.join(
                ['jira-distribution', 'jira-func-tests-runner', 'target'])))
    return maven
예제 #6
0
    def __call__(self, args, executor):

        if self.fileutils.file_exists(dependencies_tmp):
            executor.append(lambda logger: self.fileutils.remove(dependencies_tmp) or 0)

        maven = MavenCallable(args, process_utils=self.process_utils)
        maven.projects = ['jira-components/jira-tests-parent/jira-tests',
                          'jira-components/jira-tests-parent/jira-tests-unit']
        if not args.skip_legacy:
            maven.project('jira-components/jira-tests-parent/jira-tests-legacy')
        maven.option('-am')
        maven.phase('compile' if args.vdep else 'test')
        maven.property('verifyDependencies').property('jira.minify.skip', 'true').property('performApiCheck').property(
            'ajEnforcer')

        maven.property('maven.test.func.skip', 'true').property('maven.test.selenium.skip', 'true')
        if not args.skip_bp:
            report_projects = ['jira-components/jira-tests-parent',
                               'jira-func-tests',
                               'jira-components/jira-plugins']
            maven.project('jira-components/jira-plugins/jira-bundled-plugins')
        else:
            report_projects = ['jira-components/jira-tests-parent',
                               'jira-func-tests']
            maven.project('jira-func-tests')

        try:
            maven.require_mvn3().can_run_in_parallel()
        except MavenVersionInaccessibleException:
            pass

        self.surefire.set_roots(report_projects)
        executor.append(self.surefire.clean_executable())

        if args.findbugs:
            try:
                executor.append(maven.phase('test').profile('findbugs').require_mvn3())
            except MavenVersionInaccessibleException as e:
                executor.append(maven.mvn3_inaccessible_msg_callable('unit tests with findbugs', e))
        else:
            if args.vdep:
                executor.append(maven.phase('compile'))
            else:
                executor.append(maven.phase('test').option('--fail-at-end'))
                executor.append_post(self.surefire.report_executable())

        executor.append_post(DependenciesReport(args))
예제 #7
0
def ual_int_func_test_runner(args):
    maven = MavenCallable(args)
    maven.projects = [
        'jira-distribution/jira-webapp-dist',
        'jira-distribution/jira-integration-tests'
    ]
    maven.option('-am')
    maven.profile('distribution')
    maven.phase('verify')
    maven.properties.update({
        'maven.test.unit.skip': 'true',
        'jira.security.disabled': 'true',
        'java.awt.headless': 'true',
        'jira.minify.skip': 'true',
        'func.mode.plugins': 'true'
    })
    return maven
예제 #8
0
    def get_values(self):
        def process_output(myself, log: Logger, line: str, num: int):
            if '[deprecation]' in line:
                self.hit(
                    re.sub(
                        r'(.*java:)\[\d+,\d+\] \[deprecation\]( .*)', r'\1\2',
                        re.sub(
                            r'\s*\[WARNING\]\s+', '',
                            line.replace(os.getcwd() + '/',
                                         '').replace('[WARNING]', ''))))
                if self.log.is_trace():
                    self.add_to_stats(line)
                return self.verbose or self.log.is_trace()

            return line.startswith(
                "[INFO] Building Atlassian") or line.startswith(
                    '[ERROR]') or self.log.is_trace()

        maven = MavenCallable()
        maven.phase('clean').phase('test-compile').profile(
            'jira-metrics').profile('ondemand')
        maven.property('jira.exclude.bundled.plugins')
        maven.option('--no-plugin-updates')
        if self.log.is_trace():
            maven.option('-X')
        self.log.info(
            'Compiling workspace to find deprecated methods usage...')
        maven.process_output = types.MethodType(process_output, maven)

        super().pre_files_scan('irrelevant')
        maven_return_code = self.run_maven(maven)
        super().post_files_scan('irrelevant')

        if maven_return_code != MavenCallable.success:
            raise MavenExecutionException

        self.log.trace(
            json.JSONEncoder(indent=True).encode(
                sorted(self.deprecated_stats.items(),
                       key=operator.itemgetter(1))))
        self.log.info('Compilation finished.')
        return super().get_values() if maven.returncode == 0 else {}
예제 #9
0
def webdriver_test_runner(args):
    maven = MavenCallable(args)
    maven.projects = ['jira-webdriver-tests']
    maven.option('-am')
    maven.profile('jmake-webdriver-tests')
    maven.phase('test')
    maven.properties.update({
        'failIfNoTests':
        'false',
        'maven.test.unit.skip':
        'true',
        'system.bamboo.agent.home':
        os.path.abspath(
            os.sep.join(
                ['jira-distribution', 'jira-webdriver-tests-runner',
                 'target']))
    })
    if args.tests is not None:
        maven.properties.update({'test': args.tests})
    return maven