summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-03-05 12:49:20 -0300
committerTorsten Grote <t@grobox.de>2020-03-05 12:49:20 -0300
commit9a707c24f8b9731c748640eaa94290a491d03d79 (patch)
tree617b65be9ef854b0ef0563d50630d6b06416942c
parent0a070b2ac1f174c6f962d37a10f521981514b033 (diff)
downloadwallet-android-9a707c24f8b9731c748640eaa94290a491d03d79.tar.gz
wallet-android-9a707c24f8b9731c748640eaa94290a491d03d79.tar.bz2
wallet-android-9a707c24f8b9731c748640eaa94290a491d03d79.zip
Add wallet to nightly F-Droid repo
-rw-r--r--.gitlab-ci.yml46
-rw-r--r--nightly-stats.patch38
2 files changed, 84 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..f4bfc45
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,46 @@
+image: registry.gitlab.com/fdroid/ci-images-client:latest
+
+cache:
+ paths:
+ - .gradle/wrapper
+ - .gradle/caches
+
+stages:
+ - test
+ - deploy
+
+test:
+ stage: test
+ script: ./gradlew lint assembleRelease
+
+deploy_nightly:
+ stage: deploy
+ only:
+ - master
+ script:
+ # Ensure that key exists
+ - test -z "$DEBUG_KEYSTORE" && exit 0
+ # Rename nightly app
+ - sed -i
+ 's,<string name="app_name">.*</string>,<string name="app_name">Taler Wallet Nightly</string>,'
+ app/src/main/res/values*/strings.xml
+ # Set time-based version code
+ - export versionCode=$(date '+%s')
+ - sed -i "s,^\(\s*versionCode\) *[0-9].*,\1 $versionCode," app/build.gradle
+ # Add commit to version name
+ - export versionName=$(git rev-parse --short=7 HEAD)
+ - sed -i "s,^\(\s*versionName\ *\"[0-9].*\)\",\1 ($versionName)\"," app/build.gradle
+ # Set nightly application ID
+ - sed -i "s,^\(\s*applicationId\) \"*[a-z\.].*\",\1 \"net.taler.wallet.nightly\"," app/build.gradle
+ # Build the APK
+ - ./gradlew assembleDebug
+ # START only needed while patch not accepted/released upstream
+ - apt update && apt install patch
+ - patch /usr/lib/python3/dist-packages/fdroidserver/nightly.py nightly-stats.patch
+ # END
+ - CI_PROJECT_URL="https://gitlab.com/gnu-taler/fdroid-repo" CI_PROJECT_PATH="gnu-taler/fdroid-repo" fdroid nightly -v
+
+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/nightly-stats.patch b/nightly-stats.patch
new file mode 100644
index 0000000..689f46a
--- /dev/null
+++ b/nightly-stats.patch
@@ -0,0 +1,38 @@
+diff --git a/fdroidserver/nightly.py b/fdroidserver/nightly.py
+index 0a3a8012..ae3aa0e3 100644
+--- a/fdroidserver/nightly.py
++++ b/fdroidserver/nightly.py
+@@ -170,6 +170,7 @@ def main():
+ git_mirror_path = os.path.join(repo_basedir, 'git-mirror')
+ git_mirror_repodir = os.path.join(git_mirror_path, 'fdroid', 'repo')
+ git_mirror_metadatadir = os.path.join(git_mirror_path, 'fdroid', 'metadata')
++ git_mirror_statsdir = os.path.join(git_mirror_path, 'fdroid', 'stats')
+ if not os.path.isdir(git_mirror_repodir):
+ logging.debug(_('cloning {url}').format(url=clone_url))
+ try:
+@@ -217,6 +218,8 @@ Last updated: {date}'''.format(repo_git_base=repo_git_base,
+ common.local_rsync(options, git_mirror_repodir + '/', 'repo/')
+ if os.path.isdir(git_mirror_metadatadir):
+ common.local_rsync(options, git_mirror_metadatadir + '/', 'metadata/')
++ if os.path.isdir(git_mirror_statsdir):
++ common.local_rsync(options, git_mirror_statsdir + '/', 'stats/')
+
+ ssh_private_key_file = _ssh_key_from_debug_keystore()
+ # this is needed for GitPython to find the SSH key
+@@ -246,7 +249,7 @@ Last updated: {date}'''.format(repo_git_base=repo_git_base,
+ config += "keydname = '%s'\n" % DISTINGUISHED_NAME
+ config += "make_current_version_link = False\n"
+ config += "accepted_formats = ('txt', 'yml')\n"
+- # TODO add update_stats = True
++ config += "update_stats = True\n"
+ with open('config.py', 'w') as fp:
+ fp.write(config)
+ os.chmod('config.py', 0o600)
+@@ -293,6 +296,7 @@ Last updated: {date}'''.format(repo_git_base=repo_git_base,
+ subprocess.check_call(['fdroid', 'update', '--rename-apks', '--create-metadata', '--verbose'],
+ cwd=repo_basedir)
+ common.local_rsync(options, repo_basedir + '/metadata/', git_mirror_metadatadir + '/')
++ common.local_rsync(options, repo_basedir + '/stats/', git_mirror_statsdir + '/')
+ mirror_git_repo.git.add(all=True)
+ mirror_git_repo.index.commit("update app metadata")
+