From 5c553e2506778a905da10fd87b823f74b1cb7a96 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Wed, 28 Jul 2021 09:02:09 +0200 Subject: [PATCH] Add CI config with code-style checking --- .gitlab-ci.yml | 34 +++++++++++++++++++ gradle/ktlint.gradle | 11 ++++++ mailbox/build.gradle | 9 +++-- .../mailbox/ApplicationComponent.kt | 2 +- 4 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 .gitlab-ci.yml create mode 100644 gradle/ktlint.gradle diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..abb1aeb0 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,34 @@ +image: briar/ci-image-android:latest + +stages: + - test + +workflow: + # when to create a CI pipeline + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + - if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS' + when: never # avoids duplicate jobs for branch and MR + - if: '$CI_COMMIT_BRANCH' + - if: '$CI_COMMIT_TAG' + +test: + stage: test + before_script: + - set -e + - export GRADLE_USER_HOME=$PWD/.gradle + script: + - ./gradlew --no-daemon check lint + after_script: + # these file change every time and should not be cached + - rm -f $GRADLE_USER_HOME/caches/modules-2/modules-2.lock + - rm -fr $GRADLE_USER_HOME/caches/*/plugin-resolution/ + cache: + key: "$CI_COMMIT_REF_SLUG" + paths: + - .gradle/wrapper + - .gradle/caches + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + when: always + - when: always diff --git a/gradle/ktlint.gradle b/gradle/ktlint.gradle new file mode 100644 index 00000000..59358c39 --- /dev/null +++ b/gradle/ktlint.gradle @@ -0,0 +1,11 @@ +ktlint { + version = "0.41.0" + android = true + enableExperimentalRules = false + verbose = true + disabledRules = [ + "import-ordering", + "no-blank-line-before-rbrace", + "indent", // remove in 0.42 https://github.com/pinterest/ktlint/issues/764 + ] +} diff --git a/mailbox/build.gradle b/mailbox/build.gradle index c990be55..f6fe2964 100644 --- a/mailbox/build.gradle +++ b/mailbox/build.gradle @@ -3,6 +3,7 @@ plugins { id 'kotlin-android' id 'kotlin-kapt' id 'dagger.hilt.android.plugin' + id "org.jlleitschuh.gradle.ktlint" version "10.1.0" } android { @@ -36,9 +37,9 @@ android { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'androidx.appcompat:appcompat:1.3.0' - implementation "androidx.activity:activity-ktx:1.2.3" - implementation "androidx.fragment:fragment-ktx:1.3.5" + implementation 'androidx.appcompat:appcompat:1.3.1' + implementation "androidx.activity:activity-ktx:1.2.4" + implementation "androidx.fragment:fragment-ktx:1.3.6" def lifecycle_version = "2.3.1" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" @@ -55,3 +56,5 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' } + +apply from: "${rootProject.rootDir}/gradle/ktlint.gradle" diff --git a/mailbox/src/main/java/org/briarproject/mailbox/ApplicationComponent.kt b/mailbox/src/main/java/org/briarproject/mailbox/ApplicationComponent.kt index 18af8862..f9f2c756 100644 --- a/mailbox/src/main/java/org/briarproject/mailbox/ApplicationComponent.kt +++ b/mailbox/src/main/java/org/briarproject/mailbox/ApplicationComponent.kt @@ -7,4 +7,4 @@ interface ApplicationComponent { fun inject(activity: MainActivity) -} \ No newline at end of file +} -- GitLab