Add sonarqube (#37)

This commit is contained in:
Mikołaj Pich
2017-11-26 16:32:33 +01:00
committed by Rafał Borcz
parent 9ee0ca3010
commit 647ed08460
39 changed files with 277 additions and 148 deletions

View File

@ -30,10 +30,10 @@ jobs:
<<: *general_cache_key
- run:
name: Setup environment
command: ./gradlew --no-daemon --stacktrace dependencies || true
command: ./gradlew dependencies --no-daemon --stacktrace --console=plain -PdisablePreDex || true
- run:
name: Initial build
command: ./gradlew --no-daemon --stacktrace assembleDebug -PdisablePreDex
command: ./gradlew -x test -x lint build assembleDebug --no-daemon --stacktrace --console=plain -PdisablePreDex
- store_artifacts:
path: ./app/build/outputs/apk/
destination: apks/
@ -54,12 +54,16 @@ jobs:
<<: *general_cache_key
- run:
name: Run lint
command: ./gradlew --no-daemon --stacktrace lint
command: ./gradlew lint --no-daemon --stacktrace --console=plain -PdisablePreDex
- store_artifacts:
path: ./app/build/reports/
destination: lint_reports/app/
- store_test_results:
path: ./app/build/reports/
- persist_to_workspace:
root: *workspace_root
paths:
- "./app/build/reports/lint-results.xml"
app-test:
<<: *container_config
@ -69,15 +73,10 @@ jobs:
<<: *general_cache_key
- run:
name: Run app tests
command: ./gradlew --no-daemon --stacktrace :app:test
command: ./gradlew :app:test :app:jacocoTestReport --no-daemon --stacktrace --console=plain -PdisablePreDex
- run:
name: Upload unit code coverage to codecov
command: |
./gradlew --no-daemon --stacktrace :app:jacocoTestReport
bash <(curl -s https://codecov.io/bash) -F app
- run:
name: Upload code coverage to codacy
command: ./gradlew --no-daemon --stacktrace :app:codacyUpload
command: bash <(curl -s https://codecov.io/bash) -F app
- store_artifacts:
path: ./app/build/reports/tests/
destination: tests_reports/
@ -86,6 +85,10 @@ jobs:
destination: coverage_reports/
- store_test_results:
path: ./app/build/test-results
- persist_to_workspace:
root: *workspace_root
paths:
- "./app/build/jacoco"
api-test:
<<: *container_config
@ -95,15 +98,10 @@ jobs:
<<: *general_cache_key
- run:
name: Run api tests
command: ./gradlew --no-daemon --stacktrace :api:test
command: ./gradlew :api:test :api:jacocoTestReport --no-daemon --stacktrace --console=plain -PdisablePreDex
- run:
name: Upload unit code coverage to codecov
command: |
./gradlew --no-daemon --stacktrace :api:jacocoTestReport
bash <(curl -s https://codecov.io/bash) -F api
- run:
name: Upload code coverage to codacy
command: ./gradlew --no-daemon --stacktrace :api:codacyUpload
name: Upload code coverage to codecov
command: bash <(curl -s https://codecov.io/bash) -F api
- store_artifacts:
path: ./api/build/reports/tests/
destination: tests_reports/
@ -112,6 +110,10 @@ jobs:
destination: coverage_reports/
- store_test_results:
path: ./api/build/test-results
- persist_to_workspace:
root: *workspace_root
paths:
- "./api/build/jacoco"
instrumented:
<<: *container_config
@ -137,7 +139,7 @@ jobs:
command: ./gradlew clean --no-daemon --stacktrace --console=plain -PdisablePreDex
- run:
name: Run instrumented tests
command: ./gradlew connectedAndroidTest --no-daemon --stacktrace --console=plain -PdisablePreDex
command: ./gradlew createDebugCoverageReport --no-daemon --stacktrace --console=plain -PdisablePreDex
- run:
name: Collect logs from emulator
command: adb logcat -d > ./app/build/reports/logcat_emulator.txt
@ -149,6 +151,23 @@ jobs:
destination: reports
- store_test_results:
path: ./app/build/outputs/androidTest-results/connected/
- persist_to_workspace:
root: *workspace_root
paths:
- "./app/build/outputs/code-coverage/connected"
sonarcube:
<<: *container_config
steps:
- *attach_workspace
- restore_cache:
<<: *general_cache_key
- run:
name: Prepare coverage report
command: ./gradlew jacocoTestReport --no-daemon --stacktrace --console=plain -PdisablePreDex
- run:
name: Run sonarqube runner
command: ./gradlew -x test -x lint sonarqube -Dsonar.host.url=$SONAR_HOST -Dsonar.organization=$SONAR_ORG -Dsonar.login=$SONAR_KEY -Dsonar.branch.name=$CIRCLE_BRANCH --no-daemon --stacktrace --console=plain -PdisablePreDex
workflows:
version: 2
@ -168,3 +187,12 @@ workflows:
- instrumented:
requires:
- build
requires:
- build
- sonarcube:
requires:
- build
- lint
- app-test
- api-test
- instrumented