From a084f45dd28374134d38f851d726bfdcbe6c9293 Mon Sep 17 00:00:00 2001 From: mueller-ma <mueller-ma@users.noreply.github.com> Date: Fri, 9 Mar 2018 21:39:06 +0100 Subject: [PATCH] Autobump version and push tag for fdroid (#705) When creating a tag, travis... * bumps version name and code * builds store descriptions * commits both * creates a tag with the suffix "-fdroid" * pushes the tag to github F-Droid will build a new apk on every "-fdroid" tag. Signed-off-by: mueller-ma <mueller-ma@users.noreply.github.com> --- .gitignore | 4 ++ .travis.yml | 7 +-- .../generate_and_validate.sh | 0 fastlane/Appfile | 2 + fastlane/Fastfile | 44 ++++++++++++++++++ travis/bump-versioncode.sh | 31 ++++++++++++ travis/commit-version-and-metadata.sh | 26 +++++++++++ travis/key.enc | Bin 0 -> 3248 bytes travis/key.pub | 1 + travis/ssh-config | 3 ++ 10 files changed, 113 insertions(+), 5 deletions(-) mode change 100644 => 100755 assets/store_descriptions/generate_and_validate.sh create mode 100644 fastlane/Appfile create mode 100644 fastlane/Fastfile create mode 100644 travis/bump-versioncode.sh create mode 100644 travis/commit-version-and-metadata.sh create mode 100644 travis/key.enc create mode 100644 travis/key.pub create mode 100644 travis/ssh-config diff --git a/.gitignore b/.gitignore index 235ca84f..4a20bb42 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,7 @@ local.properties # macOS clutter .DS_Store + +# Fastlane docs and logs +fastlane/README.md +fastlane/report.xml diff --git a/.travis.yml b/.travis.yml index d7126572..d848e96f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,6 +42,7 @@ before_script: - android list target script: +- bash travis/bump-versioncode.sh - ./gradlew build connectedCheck test jacocoTestReport - bash assets/store_descriptions/generate_and_validate.sh @@ -49,11 +50,7 @@ after_success: - bash <(curl -s https://codecov.io/bash) before_deploy: -- git config --local user.name "TravisCI" -- git config --local user.email "support@openhab.org" -- git add fastlane/* -- git commit -m "Update fastlane metadata" -#- git push origin :refs/heads/master +- bash travis/commit-version-and-metadata.sh - openssl aes-256-cbc -K $encrypted_903a93ed2309_key -iv $encrypted_903a93ed2309_iv -in keystore.enc -out keystore -d - cp $TRAVIS_BUILD_DIR/keystore $HOME diff --git a/assets/store_descriptions/generate_and_validate.sh b/assets/store_descriptions/generate_and_validate.sh old mode 100644 new mode 100755 diff --git a/fastlane/Appfile b/fastlane/Appfile new file mode 100644 index 00000000..f1cf48cf --- /dev/null +++ b/fastlane/Appfile @@ -0,0 +1,2 @@ +json_key_file "" # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one +package_name "org.openhab.habdroid" diff --git a/fastlane/Fastfile b/fastlane/Fastfile new file mode 100644 index 00000000..89d839f6 --- /dev/null +++ b/fastlane/Fastfile @@ -0,0 +1,44 @@ +# Customize this file, documentation can be found here: +# https://docs.fastlane.tools/actions/ +# All available actions: https://docs.fastlane.tools/actions +# can also be listed using the `fastlane actions` command + +# Change the syntax highlighting to Ruby +# All lines starting with a # are ignored when running `fastlane` + +# If you want to automatically update fastlane if a new version is available: +# update_fastlane + +# This is the minimum version number required. +# Update this, if you use features of a newer version +fastlane_version "2.69.3" + +# Opt out of sending metrics and crash reports +opt_out_usage +opt_out_crash_reporting + +default_platform :android + +platform :android do + desc "Deploy a new version to the Google Play" + lane :deploy do + upload_to_play_store( + track: 'production', + apk: "$HOME/apks_to_deploy/openhab-android.apk" + ) + end + + desc "Deploy a new beta version to the Google Play" + lane :betaDeploy do + upload_to_play_store( + track: 'beta', + apk: "$HOME/apks_to_deploy/openhab-android.apk" + ) + end +end + +# More information about multiple platforms in fastlane: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform +# All available actions: https://docs.fastlane.tools/actions + +# fastlane reports which actions are used. No personal data is recorded. +# Learn more at https://docs.fastlane.tools/#metrics diff --git a/travis/bump-versioncode.sh b/travis/bump-versioncode.sh new file mode 100644 index 00000000..e74d92c4 --- /dev/null +++ b/travis/bump-versioncode.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +set -e + +if $(echo "$TRAVIS_TAG" | grep -q "fdroid") +then + echo "Tag for F-Droid detected. Nothing to do" + exit 1 +fi + +manifest="mobile/src/main/AndroidManifest.xml" + +currentVersionCode=$(grep 'android:versionCode' $manifest | sed -r 's/(.*)"(.*)"/\2/') +let currentVersionCode++ + +if [ -z "$TRAVIS_TAG" ] +then + TRAVIS_TAG=$(git rev-parse HEAD) + echo "Tag is empty, use git hash ($TRAVIS_TAG) instead" +fi + +if [ -z "$currentVersionCode" ] || [ -z "$TRAVIS_TAG" ] +then + echo "Code ($currentVersionCode) or tag ($TRAVIS_TAG) are empty! Don't bump anything." +else + echo "New version code is $currentVersionCode and name $TRAVIS_TAG" + echo "Replace versionCode" + sed --in-place -r "s/android:versionCode=\"(.*)\"/android:versionCode=\"${currentVersionCode}\"/" $manifest + echo "Replace versionName" + sed --in-place -r "s/android:versionName=\"(.*)\"/android:versionName=\"${TRAVIS_TAG}\"/" $manifest +fi diff --git a/travis/commit-version-and-metadata.sh b/travis/commit-version-and-metadata.sh new file mode 100644 index 00000000..8b37f4c3 --- /dev/null +++ b/travis/commit-version-and-metadata.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +set -e + +manifest="mobile/src/main/AndroidManifest.xml" + +echo "Configure git" +git config --local user.name "TravisCI" +git config --local user.email "support@openhab.org" +echo "Git add" +git add fastlane/* +git add $manifest +echo "Git commit" +git commit -m "Bump version to $TRAVIS_TAG and update fastlane metadata" +echo "Git tag" +git tag -a "${TRAVIS_TAG}-fdroid" -m "${TRAVIS_TAG} for F-Droid" +echo "Git decrypt key" +openssl aes-256-cbc -K $encrypted_c0c05d762590_key -iv $encrypted_c0c05d762590_iv -in travis/key.enc -out travis/key -d > /dev/null 2>&1 +echo "Copy ssh config" +cp travis/ssh-config ~/.ssh/config +echo "Git add remote" +git remote add github git@github.com:openhab/openhab-android +echo "Git fetch" +git fetch github +echo "Git push" +git push --quiet --set-upstream github :refs/heads/master > /dev/null 2>&1 diff --git a/travis/key.enc b/travis/key.enc new file mode 100644 index 0000000000000000000000000000000000000000..f421899683c58fa2f1ef61a9254db93372405277 GIT binary patch literal 3248 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 BSxo={ literal 0 HcmV?d00001 diff --git a/travis/key.pub b/travis/key.pub new file mode 100644 index 00000000..0b1babef --- /dev/null +++ b/travis/key.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDGmbjX/U2Li5YdL9smiRif3LNs/PKVuobAZS7Zva0FuApZggVx/V+cvBDyJDJAjw33WHCp/gQ0FeMrYvpZltzwJh/8HcahuBXbp5JEMMZVYdg1vIjMJ4QuIiF512SPJLq974FB4VCcbWgSpnGiMnH/MtX4ETFkYsOz0d2jEgZDH/vl7inMrym/GNJoN7p/UON6aE03RcRbpLIjgxtUQLE1S33pNkUvJQY9bTcbeCxobGR/iSSThEoOJv6hZtF153UBoZIuK5SQFJvBz3DcQi7WAGQyZOa83Drz4iq6OcoO7V6gSxszMbSdeJfaaAw19jD/P2mS0I6MI3k+1sC5cwOJHrpTNbmsXLNn8N3OFDSPagxxLQn1zVTELHp+HvN4zMgLnskEZMavETAmizfYEvmCVKh+/sykf2L40z9ZyimUPVEvgJl4/MYeIjeYnMfwc0xC8txppSI3qkU9ljfe5j9L9nFzYtvE34T9pL3Dd4TuIN3hW0WLnuRHBb4yxaPk/xfCdhLhJI5xqKTE5Y6fXT41g1F+eAqHrd3NrySnkvzJJPmBpYJBj3dEX7rOXnZxw/5NG9cklRVPbS/mQ1zqoLrH6AeI5IcN0FZk8N3uoEpjZglgrtRGhos5OA4Bno5vjxNvVadHbmY6UBCNMIqpP3/nbfS2mMl50CK//jDiaH/++Q== travis diff --git a/travis/ssh-config b/travis/ssh-config new file mode 100644 index 00000000..134ac8b5 --- /dev/null +++ b/travis/ssh-config @@ -0,0 +1,3 @@ +Host github.com + HostName github.com + IdentityFile /home/travis/build/openhab/openhab-android/travis/key -- GitLab