Skip to content
Snippets Groups Projects
Unverified Commit 7d3b1136 authored by Matthias Urhahn's avatar Matthias Urhahn Committed by GitHub
Browse files

Merge pull request #1366 from corona-warn-app/fix/1.5.x-into-1.6.x-v2

1.5.x into 1.6.x (DEV)
parents f4756858 fe0f252e
No related branches found
No related tags found
No related merge requests found
version: 2.1
orbs:
android: circleci/android@0.2.1
sonarcloud: sonarsource/sonarcloud@1.0.1
sonarcloud: sonarsource/sonarcloud@1.0.2
commands:
install-ndk: android/install-ndk
restore-build-cache: android/restore-build-cache
save-build-cache: android/save-build-cache
restore-android-build-cache: android/restore-build-cache
save-android-build-cache: android/save-build-cache
scan-sonar: sonarcloud/scan
jobs:
quick_build_release_no_tests:
executor: android/android
resource_class: large
restore-gradle-cache:
description: "Restore gradle caches"
steps:
- restore_cache:
key: jars-{{ checksum "build.gradle" }}-{{ checksum "Corona-Warn-App/build.gradle" }}-{{ checksum "Server-Protocol-Buffer/build.gradle" }}
save-gradle-cache:
description: "Save gradle caches"
steps:
- save_cache:
paths:
- ~/.gradle
key: jars-{{ checksum "build.gradle" }}-{{ checksum "Corona-Warn-App/build.gradle" }}-{{ checksum "Server-Protocol-Buffer/build.gradle" }}
require-version-bump:
description: "Require version bump for binary assembling"
steps:
- checkout
- run:
name: Check if assemble required
name: "Check if assemble required"
command: |
last_commit=$(git log -1 --pretty=%B)
if [[ $last_commit != *"Version bump"* ]]; then
circleci-agent step halt
echo "Skipping job"
fi
- install-ndk:
ndk-sha: "c81a5bcb4672a18d3647bf6898cd4dbcb978d0e8"
ndk-version: "android-ndk-r21c"
- restore-build-cache
- restore_cache:
key: jars-{{ checksum "build.gradle" }}-{{ checksum "Corona-Warn-App/build.gradle" }}-{{ checksum "Server-Protocol-Buffer/build.gradle" }}
run-gradle-cmd:
description: "Running gradle command with environment options"
parameters:
desc:
type: string
default: "Running gradle command"
cmd:
type: string
steps:
- run:
name: Quick Build
command: ./gradlew assembleDeviceRelease
name: << parameters.desc >>
command: ./gradlew << parameters.cmd >>
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
- save-build-cache
- save_cache:
paths:
- ~/.gradle
key: jars-{{ checksum "build.gradle" }}-{{ checksum "Corona-Warn-App/build.gradle" }}-{{ checksum "Server-Protocol-Buffer/build.gradle" }}
run-gradle-cmd-test-splitting:
description: "Running gradle command with environment options and test splitting"
parameters:
desc:
type: string
default: "Running gradle command"
cmd:
type: string
steps:
- run:
name: Test splitting output
command: circleci tests glob "**/test*/**/*.kt" | circleci tests split | xargs -n 1 echo
- run:
name: << parameters.desc >>
command: ./gradlew << parameters.cmd >> -i -PtestFilter="`circleci tests glob "**/test*/**/*.kt" | circleci tests split`"
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
jobs:
quick_build_device_release_no_tests:
executor: android/android
resource_class: large
working_directory: ~/project
steps:
- checkout
- restore-gradle-cache
- restore-android-build-cache
- require-version-bump
- install-ndk:
ndk-sha: "c81a5bcb4672a18d3647bf6898cd4dbcb978d0e8"
ndk-version: "android-ndk-r21c"
- run-gradle-cmd:
desc: Quick Build
cmd: "assembleDeviceRelease"
- save-gradle-cache
- save-android-build-cache
- store_artifacts:
path: Corona-Warn-App/build/reports
destination: reports
quick_build_for_testers_no_tests:
quick_build_device_for_testers_release_no_tests:
executor: android/android
resource_class: large
working_directory: ~/project
steps:
- checkout
- run:
name: Check if assemble required
command: |
last_commit=$(git log -1 --pretty=%B)
if [[ $last_commit != *"Version bump"* ]]; then
circleci-agent step halt
echo "Skipping job"
fi
- restore-gradle-cache
- restore-android-build-cache
- require-version-bump
- install-ndk:
ndk-sha: "c81a5bcb4672a18d3647bf6898cd4dbcb978d0e8"
ndk-version: "android-ndk-r21c"
- restore-build-cache
- restore_cache:
key: jars-{{ checksum "build.gradle" }}-{{ checksum "Corona-Warn-App/build.gradle" }}-{{ checksum "Server-Protocol-Buffer/build.gradle" }}
- run:
name: Quick Build
command: ./gradlew :Corona-Warn-App:assembleDeviceForTestersRelease
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
- save-build-cache
- save_cache:
paths:
- ~/.gradle
key: jars-{{ checksum "build.gradle" }}-{{ checksum "Corona-Warn-App/build.gradle" }}-{{ checksum "Server-Protocol-Buffer/build.gradle" }}
- run-gradle-cmd:
desc: Quick Build
cmd: ":Corona-Warn-App:assembleDeviceForTestersRelease"
- save-gradle-cache
- save-android-build-cache
- store_artifacts:
path: Corona-Warn-App/build/reports
destination: reports
device_release_unit_tests:
executor: android/android
resource_class: large
parallelism: 4
working_directory: ~/project
parallelism: 3
steps:
- checkout
- restore-build-cache
- restore_cache:
key: jars-{{ checksum "build.gradle" }}-{{ checksum "Corona-Warn-App/build.gradle" }}-{{ checksum "Server-Protocol-Buffer/build.gradle" }}
- run:
name: test splitting output
command: circleci tests glob "**/test*/**/*.kt" | circleci tests split | xargs -n 1 echo
- run:
name: Unit tests
command: ./gradlew :Corona-Warn-App:testDeviceReleaseUnitTest -i -PtestFilter="`circleci tests glob "**/test*/**/*.kt" | circleci tests split`"
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
- save-build-cache
- save_cache:
paths:
- ~/.gradle
key: jars-{{ checksum "build.gradle" }}-{{ checksum "Corona-Warn-App/build.gradle" }}-{{ checksum "Server-Protocol-Buffer/build.gradle" }}
- run:
name: JaCoCo report
command: ./gradlew :Corona-Warn-App:jacocoTestReportDeviceRelease
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
- restore-gradle-cache
- restore-android-build-cache
- run-gradle-cmd-test-splitting:
desc: Unit tests
cmd: ":Corona-Warn-App:testDeviceReleaseUnitTest -i"
- save-gradle-cache
- save-android-build-cache
- store_artifacts:
path: Corona-Warn-App/build/reports
destination: reports
- store_test_results:
path: Corona-Warn-App/build/test-results
- run:
name: Skip SonarCloud for external Pull Requests
command: '[[ -v CIRCLE_PR_REPONAME ]] && circleci-agent step halt || true'
- scan-sonar
device_for_testers_unit_tests:
- persist_to_workspace:
root: /home/circleci
paths:
- ./project
device_for_testers_release_unit_tests:
executor: android/android
resource_class: large
parallelism: 4
working_directory: ~/project
parallelism: 3
steps:
- checkout
- restore-build-cache
- restore_cache:
key: jars-{{ checksum "build.gradle" }}-{{ checksum "Corona-Warn-App/build.gradle" }}-{{ checksum "Server-Protocol-Buffer/build.gradle" }}
- run:
name: test splitting output
command: circleci tests glob "**/test*/**/*.kt" | circleci tests split | xargs -n 1 echo
- run:
name: Unit tests
command: ./gradlew :Corona-Warn-App:testDeviceForTestersReleaseUnitTest -i -PtestFilter="`circleci tests glob "**/test*/**/*.kt" | circleci tests split`"
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
- save-build-cache
- save_cache:
paths:
- ~/.gradle
key: jars-{{ checksum "build.gradle" }}-{{ checksum "Corona-Warn-App/build.gradle" }}-{{ checksum "Server-Protocol-Buffer/build.gradle" }}
- restore-gradle-cache
- restore-android-build-cache
- run-gradle-cmd-test-splitting:
desc: Unit tests with splitting
cmd: ":Corona-Warn-App:testDeviceForTestersReleaseUnitTest"
- save-gradle-cache
- save-android-build-cache
- store_artifacts:
path: Corona-Warn-App/build/reports
destination: reports
......@@ -143,83 +150,102 @@ jobs:
lint_device_release_check:
executor: android/android
resource_class: large
working_directory: ~/project
steps:
- checkout
- run:
name: Lint check device release
command: ./gradlew --profile :Corona-Warn-App:lintDeviceRelease
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
- restore-gradle-cache
- restore-android-build-cache
- run-gradle-cmd:
desc: Lint check deviceRelease
cmd: ":Corona-Warn-App:lintDeviceRelease -i"
- store_artifacts:
path: Corona-Warn-App/build/reports
destination: reports
ktlint_device_release_check:
executor: android/android
resource_class: medium
working_directory: ~/project
steps:
- checkout
- run:
name: Ktlint check device release
command: ./gradlew :Corona-Warn-App:ktlintDeviceReleaseCheck
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
- restore-gradle-cache
- restore-android-build-cache
- run-gradle-cmd:
desc: Ktlint check deviceRelease
cmd: ":Corona-Warn-App:ktlintDeviceReleaseCheck"
- store_artifacts:
path: Corona-Warn-App/build/reports
destination: reports
lint_device_for_testers_check:
lint_device_for_testers_release_check:
executor: android/android
resource_class: large
working_directory: ~/project
steps:
- checkout
- run:
name: Lint check device for testers
command: ./gradlew --profile :Corona-Warn-App:lintDeviceForTestersRelease
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
- restore-gradle-cache
- restore-android-build-cache
- run-gradle-cmd:
desc: Lint check deviceForTestersRelease
cmd: ":Corona-Warn-App:lintDeviceForTestersRelease -i"
- store_artifacts:
path: Corona-Warn-App/build/reports
destination: reports
ktlint_device_for_testers_check:
ktlint_device_for_testers_release_check:
executor: android/android
resource_class: medium
working_directory: ~/project
steps:
- checkout
- run:
name: Ktlint check device for testers
command: ./gradlew :Corona-Warn-App:ktlintDeviceForTestersReleaseCheck
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
- restore-gradle-cache
- restore-android-build-cache
- run-gradle-cmd:
desc: Ktlint check deviceForTestersRelease
cmd: ":Corona-Warn-App:ktlintDeviceForTestersReleaseCheck"
- store_artifacts:
path: Corona-Warn-App/build/reports
destination: reports
detekt:
executor: android/android
resource_class: medium
working_directory: ~/project
steps:
- checkout
- run:
name: Detekt check
command: ./gradlew :Corona-Warn-App:detekt
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
- restore-gradle-cache
- restore-android-build-cache
- run-gradle-cmd:
desc: Detekt check
cmd: ":Corona-Warn-App:detekt"
- store_artifacts:
path: Corona-Warn-App/build/reports
destination: reports
run_sonar:
executor: android/android
resource_class: large
working_directory: ~/project
steps:
- attach_workspace:
at: /home/circleci
- restore-gradle-cache
- restore-android-build-cache
- run-gradle-cmd:
desc: JaCoCo report
cmd: ":Corona-Warn-App:jacocoTestReportDeviceRelease -i"
- run:
name: Skip SonarCloud for external Pull Requests
command: '[[ -v CIRCLE_PR_REPONAME ]] && circleci-agent step halt || true'
- scan-sonar
workflows:
version: 2
quick_build:
jobs:
- quick_build_release_no_tests
- quick_build_for_testers_no_tests
- quick_build_device_release_no_tests
- quick_build_device_for_testers_release_no_tests
- device_release_unit_tests
- device_for_testers_unit_tests
- device_for_testers_release_unit_tests
- lint_device_release_check
- lint_device_for_testers_check
- lint_device_for_testers_release_check
- ktlint_device_release_check
- ktlint_device_for_testers_check
- ktlint_device_for_testers_release_check
- detekt
- run_sonar:
requires:
- device_release_unit_tests
......@@ -214,7 +214,7 @@
<!-- XTXT: main, explains faq on card -->
<string name="main_about_body">"Bu bölümde, Corona-Warn-App hakkında sık sorulan soruların yanıtlarını bulabilirsiniz. Alman hükûmetinin harici bir web sitesine yönlendirileceksiniz."</string>
<!-- XTXT: FAQ link, should be translated -->
<string name="main_about_link">"https://www.bundesregierung.de/corona-warn-app-faq-englisch"</string>
<string name="main_about_link">"https://www.bundesregierung.de/corona-warn-app-faq-tuerkisch"</string>
<!-- XACT: Opens external webpage -->
<string name="hint_external_webpage">"Bu bölümde, Corona-Warn-App hakkında sık sorulan soruların yanıtlarını bulabilirsiniz. Harici bir web sitesine yönlendirileceksiniz."</string>
......
......@@ -20,5 +20,5 @@
<!-- XHED: onboarding(tracing) - headline for consent information -->
<string name="onboarding_tracing_headline_consent" translatable="false">"Declaration of consent"</string>
<!-- YTXT: onboarding(tracing) - body for consent information -->
<string name="onboarding_tracing_body_consent" translatable="false">"You need to enable exposure logging to find out whether you have had possible exposures involving app users in the participating countries and are therefore at risk of infection yourself. By tapping on the “Enable exposure logging” button, you agree to enabling the exposure logging feature and to the associated data processing by the app.\n\nIn order to use the exposure logging feature, you will also have to enable the “COVID-19 Exposure Notifications” functionality provided by Google on your Android smartphone and grant the Corona-Warn-App permission to use this.\n\nWhen COVID-19 Exposure Notifications are enabled, your Android smartphone continuously generates random IDs and sends them via Bluetooth so that they can be received by other smartphones near you. Your Android smartphone, in turn, receives the random IDs of other smartphones. Your own random IDs and those received from other smartphones are recorded by your Android smartphone and stored there for 14 days.\n\nFor exposure logging, the app downloads a list, which is updated daily, of the random IDs of all users who have shared their random IDs via their official coronavirus app. This list is then compared with the random IDs of other users which have been recorded by your smartphone.\n\nThe app will inform you if it detects a possible exposure. In this case, the app gains access to the data recorded by your smartphone about the possible exposure (date, duration and Bluetooth signal strength of the contact). The Bluetooth signal strength is used to derive the physical distance to the other user (the stronger the signal, the smaller the distance). The app analyses this information in order to calculate your risk of infection and to give you recommendations for what to do next. This analysis is only performed locally on your smartphone.\n\nApart from you, nobody (not even the RKI or the health authorities of participating countries) will know whether a possible exposure has been detected and what risk of infection has been identified for you.\n\nTo withdraw your consent to the exposure logging feature, you can disable the feature by using the toggle switch in the app or delete the app. If you would like to use the exosure logging feature again, you can toggle the feature back on or reinstall the app. If you disable the exposure logging feature, the app will no longer check for possible exposures. If you also wish to stop your device sending and receiving random IDs, you will need to disable COVID-19 Exposure Notifications in your Android smartphone settings. Please note that your own random IDs and those received from other smartphones which are stored by your Android smartphone’s COVID-19 Exposure Notification functionality will not be deleted by the app. You can only permanently delete these in your Android smartphone settings.\n\nThe app’s privacy notice (including information about the data processing carried out for the transnational exposure logging feature) can be found in the menu under „App Information“ > „Data Privacy“."</string>
<string name="onboarding_tracing_body_consent" translatable="false">"You need to enable exposure logging to find out whether you have had possible exposures involving app users in the participating countries and are therefore at risk of infection yourself. By tapping on the “Activate exposure logging” button, you agree to enabling the exposure logging feature and to the associated data processing by the app.\n\nIn order to use the exposure logging feature, you will also have to enable the “COVID-19 Exposure Notifications” functionality provided by Google on your Android smartphone and grant the Corona-Warn-App permission to use this.\n\nWhen COVID-19 Exposure Notifications are enabled, your Android smartphone continuously generates random IDs and sends them via Bluetooth so that they can be received by other smartphones near you. Your Android smartphone, in turn, receives the random IDs of other smartphones. Your own random IDs and those received from other smartphones are recorded by your Android smartphone and stored there for 14 days.\n\nFor exposure logging, the app downloads a list, which is updated daily, of the random IDs of all users who have shared their random IDs via their official coronavirus app. This list is then compared with the random IDs of other users which have been recorded by your smartphone.\n\nThe app will inform you if it detects a possible exposure. In this case, the app gains access to the data recorded by your smartphone about the possible exposure (date, duration and Bluetooth signal strength of the contact). The Bluetooth signal strength is used to derive the physical distance to the other user (the stronger the signal, the smaller the distance). The app analyses this information in order to calculate your risk of infection and to give you recommendations for what to do next. This analysis is only performed locally on your smartphone.\n\nApart from you, nobody (not even the RKI or the health authorities of participating countries) will know whether a possible exposure has been detected and what risk of infection has been identified for you.\n\nTo withdraw your consent to the exposure logging feature, you can disable the feature by using the toggle switch in the app or delete the app. If you would like to use the exosure logging feature again, you can toggle the feature back on or reinstall the app. If you disable the exposure logging feature, the app will no longer check for possible exposures. If you also wish to stop your device sending and receiving random IDs, you will need to disable COVID-19 Exposure Notifications in your Android smartphone settings. Please note that your own random IDs and those received from other smartphones which are stored by your Android smartphone’s COVID-19 Exposure Notification functionality will not be deleted by the app. You can only permanently delete these in your Android smartphone settings.\n\nThe app’s privacy notice (including information about the data processing carried out for the transnational exposure logging feature) can be found in the menu under „App Information“ > „Data Privacy“."</string>
</resources>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment