summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstom79 <tschneider.ac@gmail.com>2018-11-26 18:10:33 +0100
committerstom79 <tschneider.ac@gmail.com>2018-11-26 18:10:33 +0100
commit97a3c3dadbc1ad3acbdbb114ee520ea636a1a1d4 (patch)
tree44bee7cf3aae0457d88f811905b13987aca0643e
parentc27243b9a424293a9ded45f7186fd8f9d4d32cd2 (diff)
parent3bd1dee65d789a42631ea9fa5b3670dee602fed8 (diff)
Merge remote-tracking branch 'origin/develop' into develop
-rw-r--r--.gitlab-ci.yml61
1 files changed, 57 insertions, 4 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 942510385..370277db6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -7,19 +7,72 @@ before_script:
stages:
- build-and-test
- - test
+ - tag
-assembleDebug:
+.no-upload: &no-upload
stage: build-and-test
+ retry: 2
+
+assembleDebug:
+ <<: *no-upload
+ cache:
+ key: "${CI_COMMIT_TAG}"
+ paths:
+ - app/build/outputs/apk/fdroid/debug/app-fdroid-debug.apk
+ - app/build/outputs/apk/playstore/debug/app-playstore-debug.apk
+ policy: push
script:
- ./gradlew assembleDebug
lintDebug:
- stage: build-and-test
+ <<: *no-upload
script:
- ./gradlew -Pci --console=plain :app:lintFdroidDebug -PbuildDir=lint
+ except:
+ - tags
debugTests:
- stage: build-and-test
+ <<: *no-upload
script:
- ./gradlew -Pci --console=plain :app:testFdroidDebugUnitTest
+ except:
+ - tags
+
+## PROTECTED VARIABLES TO SET IN GITLAB:
+# - GITLAB_API_TOKEN: token you create on Gitlab
+# - NC_REMOTE_DIR: like https://YOUR_NEXTCLOUD/remote.php/dav/files/YOUR_USER/mastalab (no trailing slash)
+# - NC_SHARE_URL: share the folder in Nextcloud with public link and put your public link here (no trailing slash)
+# - NC_USER: nextcloud user
+# - NC_PASSWORD: nextcloud password
+## Protect all tags in Gitlab repo settings (do a wildcard, ie '*')
+# For now, it uses the assembleDebug builds, you'll need to create a job in build-and-test to create the apks, with only: - tags and add except: - tags to assembleDebug (like in debugTests)
+# In it, put something like this to get your signature key file:
+# - curl -s --output signature.jsk -u "${NC_USER}:${NC_PASSWORD}" "https://YOUR_NEXTCLOUD/remote.php/dav/files/YOUR_USER/signature.jsk"
+putApkOnTags:
+ image: hatsoftwares/curl-jq:latest
+ stage: tag
+ retry: 2
+ cache:
+ key: "${CI_COMMIT_TAG}"
+ paths:
+ - app/build/outputs/apk/fdroid/debug/app-fdroid-debug.apk
+ - app/build/outputs/apk/playstore/debug/app-playstore-debug.apk
+ policy: pull
+ script:
+ - export PROJECT_API_URL="https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}"
+ - export DESCRIPTION_URL="${PROJECT_API_URL}/repository/tags/${CI_COMMIT_TAG}"
+ - export RELEASE_URL="${DESCRIPTION_URL}/release"
+ - export NC_UPLOAD_URL="${NC_REMOTE_DIR}/${CI_COMMIT_TAG}"
+ - export NC_DOWNLOAD_URL="${NC_SHARE_URL}/download?path=%2F${CI_COMMIT_TAG}%2F&files="
+ - 'export HEADER="Private-Token: ${GITLAB_API_TOKEN}"'
+ - export fdroidUrl="${NC_DOWNLOAD_URL}app-fdroid-debug.apk"
+ - export playstoreUrl="${NC_DOWNLOAD_URL}app-playstore-debug.apk"
+ - 'curl -s -u "${NC_USER}:${NC_PASSWORD}" -X MKCOL "${NC_UPLOAD_URL}"'
+ - 'curl -s -u "${NC_USER}:${NC_PASSWORD}" -T app/build/outputs/apk/fdroid/debug/app-fdroid-debug.apk "${NC_UPLOAD_URL}/app-fdroid-debug.apk"'
+ - 'curl -s -u "${NC_USER}:${NC_PASSWORD}" -T app/build/outputs/apk/playstore/debug/app-playstore-debug.apk "${NC_UPLOAD_URL}/app-playstore-debug.apk"'
+ - export description=$(curl -s --header "${HEADER}" "${DESCRIPTION_URL}" | jq .release.description | sed -e 's@"@@g')
+ - if [[ $description == 'null' ]]; then export METHOD="POST"; echo -e "[Get the fdroid apk](${fdroidUrl})\n\n[Get the play store apk](${playstoreUrl})" > /tmp/text; fi
+ - if [[ $description != 'null' ]]; then export METHOD="PUT"; echo -e "${description}\n\n[Get the fdroid apk](${fdroidUrl})\n\n[Get the play store apk](${playstoreUrl})" > /tmp/text; fi
+ - curl -s --request $METHOD --data-urlencode "description@/tmp/text" --header "${HEADER}" "${RELEASE_URL}"
+ only:
+ - tags