Как интегрировать Jenkinsfile углового проекта с Sonarqube - PullRequest
0 голосов
/ 01 марта 2019

У меня есть проект angularjs.у проекта есть Jenkinsfile (декларативный конвейер), который может создать jenkinsjob после выполнения push.Я пытаюсь включить действие sonarqube здесь для статического сканирования.Много искал угловатых проектов по моему сценарию.но большинство примеров, которые я проверял, имеют файл pom.xml (потому что это были либо проекты, связанные с Java).

Я написал sonar-projects.properties в корне и добавил все необходимые элементы:

sonar.projectKey=apols:webproject
sonar.projectName=webproject
sonar.projectVersion=1.0.0
sonar.projectDescription=Static analysis for the AppName
sonar.sources=www
sonar.exclusions=**/node_modules/**,**/*.spec.ts,**/dist/**,**/docs/**,**/*.js,**/coverage/**
sonar.tests=www 
sonar.test.inclusions=**/*.spec.ts
sonar.ts.tslint.configPath=tslint.json
sonar.javascript.lcov.reportPaths=coverage/lcov.info
sonar.ts.coverage.lcovReportPath=coverage/lcov.info

Моя Сонарная развертка Дженкинсфайла часть -

stage('Sonarqube') {
     steps {
        container('maven') {
            script {
               withSonarQubeEnv('SonarQube') {
                  sh 'mvn clean package sonar:sonar'
               }
               timeout(time: 10, unit: 'MINUTES') {
                    waitForQualityGate abortPipeline: true
               }
            }
        }
     }
}

Как видите, я использую контейнер maven в jenkins.

Когда задание jenkins запускается, когда оно выполняет эту строку в Jenkinsfile - sh 'mvn clean package sonar:sonar', оно проверяет файл pom.xml и завершается ошибкой.Так, как я могу указать это на мои sonar-projects.properties .Пожалуйста, помогите

1 Ответ

0 голосов
/ 02 марта 2019

Вам необходимо запустить собственный сканер SonarQube вместо сканера SonarQube для Maven.

stage('Sonarqube') {
    steps {
        container('SonarQubeScanner') {
            withSonarQubeEnv('SonarQube') {
                sh "/usr/local/sonar-scanner"
            }
            timeout(time: 10, unit: 'MINUTES') {
                waitForQualityGate abortPipeline: true
            }
        }
    }
}

container('SonarQubeScanner') и sh "/usr/local/sonar-scanner" являются лишь примерами, но есть много док-контейнеров со сканером SonarQube, см. Docker Hub .

Подробнее о Анализ с помощью сканера SonarQube .

Как это сделать без контейнеров: Как запустить сканер SonarQube в JenkinsДекларативный конвейер без Maven и Docker

...