VSTS\TFS 2017 analysis ERROR: No valid rules have been specified for TypeScript

scanner
typescript
vsts
sonarqube

(Suraj Pardeshi) #1

Hi,

SonarQuber Version: 6.7.5
Sonar VSTS extension: 4.3.2
TFS - 2017 Update3

I am using SonarQube’s VSTS extensions to trigger the TFS build definition. I am building angular projects and after the build is successful I see that ERROR: No valid rules have been specified being displayed in TFS build summary.

After validating all Sonar tasks that are used in my TFS build, I found out that this error get created in Run Code Analysis task for typescript. This task is used in my Sonar TFS Build.

I also validated the tslint.json file in which there were rules specified in it but still i was getting this error. Also one more thing this error started occurring when i updated the SonarQube to 6.7.5 but with SonarQube 5.6.6 it was working fine. Like it never displayed this error.

Below are the configuration properties that are provided by me for Code analysis

# Additional properties that will be passed to the scanner, **
# Put one key=value per line, example:
# sonar.exclusions=/*.bin

#sonar.javascript.lcov.reportPaths=coverage/lcov.info
#sonar.exclusions=node_modules/**
sonar.sources=src
sonar.sourceEncoding=UTF-8
sonar.exclusions=/node_modules/,/.spec.ts**
sonar.tests=src
sonar.test.inclusions=/
.spec.ts**
sonar.typescript.tslint.configpath=tslint.json
sonar.exclusions=/node_modules/,/.spec.ts,src/Tools/***
sonar.typescript.lcov.reportPaths=coverage/lcov.info
sonar.typescript.exclusions=/node_modules/,/typings.d.ts,/main.ts,/environments/environment*.ts,*/routing.module.ts

I have attached the Run Code Analysis task log for reference.

6_Run Code Analysis.txt (80.3 KB)

Error on TFS Build Summary

Error%20on%20TFS%20Build%20Summary

tslint .json file.

{
** “rulesDirectory”: [**
** “node_modules/codelyzer”**
** ],**
** “rules”: {**
** “arrow-return-shorthand”: true,**
** “callable-types”: true,**
** “class-name”: true,**
** “comment-format”: [**
** true,**
** “check-space”**
** ],**
** “curly”: true,**
** “eofline”: true,**
** “forin”: true,**
** “import-blacklist”: [**
** true,**
** “rxjs”,**
** “rxjs/Rx”**
** ],**
** “import-spacing”: true,**
** “indent”: [**
** true,**
** “spaces”**
** ],**
** “interface-over-type-literal”: true,**
** “label-position”: true,**
** “max-line-length”: [**
** true,**
** 140**
** ],**
** “member-access”: false,**
** “member-ordering”: [**
** true,**
** {**
** “order”: [**
** “static-field”,**
** “instance-field”,**
** “static-method”,**
** “instance-method”**
** ]**
** }**
** ],**
** “no-arg”: true,**
** “no-bitwise”: true,**
** “no-console”: [**
** true,**
** “debug”,**
** “info”,**
** “time”,**
** “timeEnd”,**
** “trace”**
** ],**
** “no-construct”: true,**
** “no-debugger”: true,**
** “no-duplicate-super”: true,**
** “no-empty”: false,**
** “no-empty-interface”: true,**
** “no-eval”: true,**
** “no-inferrable-types”: [**
** true,**
** “ignore-params”**
** ],**
** “no-misused-new”: true,**
** “no-non-null-assertion”: true,**
** “no-shadowed-variable”: true,**
** “no-string-literal”: false,**
** “no-string-throw”: true,**
** “no-switch-case-fall-through”: true,**
** “no-trailing-whitespace”: true,**
** “no-unnecessary-initializer”: true,**
** “no-unused-expression”: true,**
** “no-use-before-declare”: true,**
** “no-var-keyword”: true,**
** “object-literal-sort-keys”: false,**
** “one-line”: [**
** true,**
** “check-open-brace”,**
** “check-catch”,**
** “check-else”,**
** “check-whitespace”**
** ],**
** “prefer-const”: true,**
** “quotemark”: [**
** true,**
** “single”**
** ],**
** “radix”: true,**
** “semicolon”: [**
** true,**
** “always”**
** ],**
** “triple-equals”: [**
** true,**
** “allow-null-check”**
** ],**
** “typedef-whitespace”: [**
** true,**
** {**
** “call-signature”: “nospace”,**
** “index-signature”: “nospace”,**
** “parameter”: “nospace”,**
** “property-declaration”: “nospace”,**
** “variable-declaration”: “nospace”**
** }**
** ],**
** “typeof-compare”: true,**
** “unified-signatures”: true,**
** “variable-name”: false,**
** “whitespace”: [**
** true,**
** “check-branch”,**
** “check-decl”,**
** “check-operator”,**
** “check-separator”,**
** “check-type”**
** ],**
** “directive-selector”: [**
** true,**
** “attribute”,**
** [**
** “nextgen”**
** ],**
** “camelCase”**
** ],**
** “component-selector”: [**
** true,**
** “element”,**
** [**
** “nextgen”**
** ],**
** “kebab-case”**
** ],**
** “use-input-property-decorator”: true,**
** “use-output-property-decorator”: true,**
** “use-host-property-decorator”: true,**
** “no-input-rename”: true,**
** “no-output-rename”: true,**
** “use-life-cycle-interface”: true,**
** “use-pipe-transform-interface”: true,**
** “component-class-suffix”: true,**
** “directive-class-suffix”: true,**
** “invoke-injectable”: true**
** }**
}

I am new to sonar and angular things so Any help would be appreciated.

Thanks & regards,
SRP