Build/Release Changes (#423)

* Fix app version in settings.

* Dependency Upgrades

* Enable beta -> production promotion via tag in Travis.

* Fix firebase release notes location.

* Add some logging around what we are building.

* TRAVIS_PULL_REQUEST is a number or false....
This commit is contained in:
Justin Bassett 2020-02-13 21:44:28 -05:00 committed by GitHub
parent fb39094210
commit 03478310c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 72 additions and 32 deletions

View file

@ -2,23 +2,32 @@
set -ev set -ev
git log --format=%B -n 1 $TRAVIS_COMMIT > CHANGES.md if [ "$TRAVIS_PULL_REQUEST" != "false" ]
mkdir -p app/src/main/play/release-notes/en-US/
cp CHANGES.md app/src/main/play/release-notes/en-US/default.txt
export VERSION_CODE=`git rev-list --count HEAD`
./gradlew test
./gradlew lint
./gradlew ktlintCheck
if [ "$TRAVIS_PULL_REQUEST" = "false" ]
then then
if [ -n "$TRAVIS_TAG" ]
then echo "Building PR"
echo "Release already in Play Store Console" ./gradlew test
elif [ "$TRAVIS_BRANCH" = "master" ] ./gradlew lint
then ./gradlew ktlintCheck
./gradlew assembleRelease appDistributionUploadRelease publishReleaseBundle
fi elif [ -n "$TRAVIS_TAG" ]
fi then
echo "Promoting Beta to Production"
./gradlew promoteArtifact --from-track beta --promote-track production
elif [ "$TRAVIS_BRANCH" = "master" ]
then
echo "Building Master"
mkdir -p app/src/main/play/release-notes/en-US/
git log --format=%s $(git rev-list --tags --max-count=1)..HEAD > app/src/main/play/release-notes/en-US/default.txt
export VERSION_CODE=`git rev-list --count HEAD`
./gradlew test
./gradlew lint
./gradlew ktlintCheck
./gradlew assembleRelease appDistributionUploadRelease publishReleaseBundle
fi

View file

@ -58,4 +58,4 @@ def vName = "X.X.X-${vCode}"
``` ```
Merge that into master and allow the build to complete and validate on the beta channel. (Deploy there automatic) Merge that into master and allow the build to complete and validate on the beta channel. (Deploy there automatic)
Once ready to move to production log into play store -> Release Management -> App Releases -> Beta -> Promote to Production Once ready to move to production tag the master branch and travis will start the promotion from beta -> production.

View file

@ -14,7 +14,7 @@ buildscript {
} }
dependencies { dependencies {
classpath 'com.google.firebase:firebase-appdistribution-gradle:1.3.1' classpath 'com.google.firebase:firebase-appdistribution-gradle:1.3.1'
classpath 'com.github.triplet.gradle:play-publisher:2.5.0' classpath 'com.github.triplet.gradle:play-publisher:2.6.2'
classpath 'de.mannodermaus.gradle.plugins:android-junit5:1.5.2.0' classpath 'de.mannodermaus.gradle.plugins:android-junit5:1.5.2.0'
} }
} }
@ -35,7 +35,7 @@ android {
firebaseAppDistribution { firebaseAppDistribution {
serviceCredentialsFile = "firebaseAppDistributionServiceCredentialsFile.json" serviceCredentialsFile = "firebaseAppDistributionServiceCredentialsFile.json"
releaseNotesFile = "CHANGES.md" releaseNotesFile = "src/main/play/release-notes/en-US/default.txt"
groups = "continuous-deployment" groups = "continuous-deployment"
} }
@ -97,7 +97,7 @@ dependencies {
implementation "androidx.appcompat:appcompat:$appCompatVersion" implementation "androidx.appcompat:appcompat:$appCompatVersion"
implementation "androidx.constraintlayout:constraintlayout:$constraintLayoutversion" implementation "androidx.constraintlayout:constraintlayout:$constraintLayoutversion"
implementation "androidx.preference:preference-ktx:1.1.0" implementation "androidx.preference:preference-ktx:1.1.0"
implementation 'com.google.android.material:material:1.0.0' implementation 'com.google.android.material:material:1.1.0'
implementation("com.jakewharton.threetenabp:threetenabp:$threeTenAbpVersion") { implementation("com.jakewharton.threetenabp:threetenabp:$threeTenAbpVersion") {
exclude group: 'org.threeten' exclude group: 'org.threeten'
@ -112,7 +112,7 @@ dependencies {
implementation "com.google.firebase:firebase-iid:20.0.2" implementation "com.google.firebase:firebase-iid:20.0.2"
implementation "com.google.firebase:firebase-messaging:20.1.0" implementation "com.google.firebase:firebase-messaging:20.1.0"
implementation "androidx.work:work-runtime-ktx:2.3.0" implementation "androidx.work:work-runtime-ktx:2.3.1"
testImplementation "org.spekframework.spek2:spek-dsl-jvm:$spek2Version" testImplementation "org.spekframework.spek2:spek-dsl-jvm:$spek2Version"
testImplementation "org.spekframework.spek2:spek-runner-junit5:$spek2Version" testImplementation "org.spekframework.spek2:spek-runner-junit5:$spek2Version"

View file

@ -52,7 +52,7 @@ class SettingsFragment : PreferenceFragmentCompat(), SettingsView {
onChangeUrlValidator onChangeUrlValidator
findPreference<Preference>("version")?.let { findPreference<Preference>("version")?.let {
it.summary = "${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})" it.summary = BuildConfig.VERSION_NAME
} }
presenter.onCreate() presenter.onCreate()

View file

@ -7,7 +7,7 @@ ext {
jacksonVersion = '2.10.1' jacksonVersion = '2.10.1'
appCompatVersion = '1.1.0' appCompatVersion = '1.1.0'
constraintLayoutversion = '1.1.3' constraintLayoutversion = '1.1.3'
coroutinesVersion = '1.3.2' coroutinesVersion = '1.3.3'
daggerVersion = '2.25.2' daggerVersion = '2.25.2'
threeTenAbpVersion = '1.2.1' threeTenAbpVersion = '1.2.1'
threeTenBpVersion = '1.4.0' threeTenBpVersion = '1.4.0'

Binary file not shown.

View file

@ -1,6 +1,5 @@
#Sun Mar 31 01:55:59 PDT 2019
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.3-all.zip

22
gradlew vendored
View file

@ -1,5 +1,21 @@
#!/usr/bin/env sh #!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
############################################################################## ##############################################################################
## ##
## Gradle start up script for UN*X ## Gradle start up script for UN*X
@ -28,7 +44,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"` APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS="" DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value. # Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum" MAX_FD="maximum"
@ -109,8 +125,8 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi fi
# For Cygwin, switch paths to Windows format before running java # For Cygwin or MSYS, switch paths to Windows format before running java
if $cygwin ; then if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"` APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"` JAVACMD=`cygpath --unix "$JAVACMD"`

18
gradlew.bat vendored
View file

@ -1,3 +1,19 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off @if "%DEBUG%" == "" @echo off
@rem ########################################################################## @rem ##########################################################################
@rem @rem
@ -14,7 +30,7 @@ set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME% set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS= set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe @rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome if defined JAVA_HOME goto findJavaFromJavaHome