Skip to content
Snippets Groups Projects
Commit eedbe869 authored by michael.minelli's avatar michael.minelli
Browse files

SonarAnalyzer => Reformat

parent 59308a71
No related branches found
No related tags found
No related merge requests found
import { spawnSync } from 'node:child_process'; import { spawnSync } from 'node:child_process';
import { Language } from '../../models/Assignment'; import { Language } from '../../models/Assignment';
import SharedConfig from '../../../shared/config/SharedConfig'; import SharedConfig from '../../../shared/config/SharedConfig';
const IMAGE_NAME = 'dojo-sonar-scanner'
const IMAGE_NAME = 'dojo-sonar-scanner';
const OUT_DIR = 'bw-output'; const OUT_DIR = 'bw-output';
class SonarAnalyzer { class SonarAnalyzer {
buildDocker = () => { buildDocker = () => {
const buildProcess = spawnSync('docker', ['build', '--tag', IMAGE_NAME, '/sonar']); const buildProcess = spawnSync('docker', [ 'build', '--tag', IMAGE_NAME, '/sonar' ]);
if ( buildProcess.status !== 0 ) { if ( buildProcess.status !== 0 ) {
console.log(buildProcess.stdout.toString()) console.log(buildProcess.stdout.toString());
console.log(buildProcess.stderr.toString()) console.log(buildProcess.stderr.toString());
return false; return false;
} }
return true; return true;
} };
mustRunBuild = (language: Language, buildLine: string | undefined) => { mustRunBuild = (language: Language, buildLine: string | undefined) => {
return [Language.c, Language.cpp, Language.objc].includes(language) && buildLine != undefined; return [ Language.c, Language.cpp, Language.objc ].includes(language) && buildLine != undefined;
} };
runBuildStep = (buildLine: string) => { runBuildStep = (buildLine: string) => {
const process = spawnSync(`docker run -v ./:/usr/src ${IMAGE_NAME} /usr/local/bin/build-wrapper-linux-x86-64 --out-dir ${OUT_DIR} ` + buildLine, [], { shell: true }) const process = spawnSync(`docker run -v ./:/usr/src ${ IMAGE_NAME } /usr/local/bin/build-wrapper-linux-x86-64 --out-dir ${ OUT_DIR } ` + buildLine, [], { shell: true });
if ( process.status !== 0 ) { if ( process.status !== 0 ) {
console.log(process.stdout.toString()) console.log(process.stdout.toString());
console.log(process.stderr.toString()) console.log(process.stderr.toString());
return false; return false;
} }
return true; return true;
} };
runAnalysis = (sonarKey: string, language: Language, buildLine: string | undefined) => { runAnalysis = (sonarKey: string, language: Language, buildLine: string | undefined): boolean => {
let addParam: string[] = []; let addParam: string[] = [];
if (this.mustRunBuild(language, buildLine)) { if ( this.mustRunBuild(language, buildLine) ) {
addParam = [ `-Dsonar.cfamily.build-wrapper-output=/usr/src/${OUT_DIR}`]; addParam = [ `-Dsonar.cfamily.build-wrapper-output=/usr/src/${ OUT_DIR }` ];
} }
const process = spawnSync( const process = spawnSync('docker', [ 'run', '-v', './:/usr/src', IMAGE_NAME, 'sonar-scanner', '-Dsonar.qualitygate.wait=true', '-Dsonar.projectKey=' + sonarKey, '-Dsonar.sources=.', '-Dsonar.host.url=' + SharedConfig.sonar.url, '-Dsonar.login=' + SharedConfig.sonar.token, ...addParam ]);
'docker',
['run', '-v', './:/usr/src',
IMAGE_NAME , 'sonar-scanner',
'-Dsonar.qualitygate.wait=true',
'-Dsonar.projectKey=' + sonarKey,
'-Dsonar.sources=.',
'-Dsonar.host.url=' + SharedConfig.sonar.url,
'-Dsonar.login=' + SharedConfig.sonar.token,
...addParam])
return process.status === 0; return process.status === 0;
} };
} }
export default new SonarAnalyzer(); export default new SonarAnalyzer();
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment