[tor-commits] [orbot/master] add .gitlab-ci.yml setup with errorprone

n8fr8 at torproject.org n8fr8 at torproject.org
Fri Mar 22 16:30:10 UTC 2019


commit 6ba0ceccbde67310c22fc9fa4e0dc88d932740f5
Author: Hans-Christoph Steiner <hans at eds.org>
Date:   Wed Mar 20 10:44:02 2019 +0100

    add .gitlab-ci.yml setup with errorprone
---
 .gitlab-ci.yml          | 54 +++++++++++++++++++++++++++++++++++++++++++++++++
 tools/errorprone.gradle | 25 +++++++++++++++++++++++
 2 files changed, 79 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 00000000..9a09b8b4
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,54 @@
+image: registry.gitlab.com/fdroid/ci-images-client:latest
+
+cache:
+  paths:
+    - .gradle/wrapper
+    - .gradle/caches
+
+stages:
+  - test
+  - deploy
+
+before_script:
+  - export GRADLE_USER_HOME=$PWD/.gradle
+  - export ANDROID_COMPILE_SDK=`sed -n 's,.*compileSdkVersion\s*\([0-9][0-9]*\).*,\1,p' app/build.gradle`
+  - alias sdkmanager="sdkmanager --no_https"
+  - echo y | sdkmanager
+      "platforms;android-${ANDROID_COMPILE_SDK}"
+      "$(sed -nE 's,.*buildToolsVersion *.([0-9.]+).*,build-tools;\1,p' app/build.gradle)"
+      "build-tools;23.0.3" > /dev/null
+
+.test-template: &test-template
+  artifacts:
+    name: "${CI_PROJECT_PATH}_${CI_JOB_STAGE}_${CI_COMMIT_REF_NAME}_${CI_COMMIT_SHA}"
+    paths:
+      - "logcat.txt"
+      - "*/build/reports"
+      - "*/build/outputs/*ml"
+      - "*/build/outputs/apk"
+    expire_in: 1 week
+    when: on_failure
+  after_script:
+    - echo "Download debug artifacts from https://gitlab.com/${CI_PROJECT_PATH}/-/jobs"
+
+# Run the most important first. Then we can decide whether to ignore
+# the style tests if the rest of the more meaningful tests pass.
+test:
+  stage: test
+  <<: *test-template
+  script:
+    # print lint errors/warnings to build log
+    - sed -i 's,\s*textReport .*,\ttextReport true,g' */build.gradle
+    # 'assemble' everything and run all checks that do not require a device/emulator
+    - ./gradlew build -PdisablePreDex
+
+errorprone:
+  stage: test
+  script:
+    - for f in */build.gradle; do cat tools/errorprone.gradle >> $f; done
+    - ./gradlew assembleDebug -PdisablePreDex
+
+after_script:
+    # this file changes every time but should not be cached
+    - rm -f $GRADLE_USER_HOME/caches/modules-2/modules-2.lock
+    - rm -fr $GRADLE_USER_HOME/caches/*/plugin-resolution/
diff --git a/tools/errorprone.gradle b/tools/errorprone.gradle
new file mode 100644
index 00000000..ea43695f
--- /dev/null
+++ b/tools/errorprone.gradle
@@ -0,0 +1,25 @@
+
+buildscript {
+    repositories {
+        maven {
+            url "https://plugins.gradle.org/m2/"
+        }
+    }
+    dependencies {
+        classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.16"
+    }
+}
+
+apply plugin: "net.ltgt.errorprone"
+
+tasks.withType(JavaCompile) {
+    options.compilerArgs += [
+            '-XepAllDisabledChecksAsWarnings',
+            '-Xep:Var:OFF',
+            '-XepExcludedPaths:.*/build/generated/.*',
+    ]
+}
+
+configurations.errorprone {
+    resolutionStrategy.force 'com.google.errorprone:error_prone_core:2.2.0'
+}





More information about the tor-commits mailing list