Local testing

This commit is contained in:
2023-08-04 21:34:01 +01:00
parent 2315422c82
commit d834e199e5
4 changed files with 60 additions and 37 deletions

View File

@@ -109,6 +109,26 @@ commands:
# Then publish the results of the Instrumentation tests!
- store_test_results:
path: app/build/outputs/androidTest-results/connected
deploy_to_play_store:
description: deploy to playstore based on flavour
parameters:
flavour:
type: string
default: "Driver"
steps:
# The next step will run the unit tests
- run:
name: Setup keystore
command: |
echo "$RELEASE_KEYSTORE_BASE64" | base64 --decode > "./keystore.jks"
- run:
name: Setup playstore key
command: |
echo "$GOOGLE_PLAY_KEY" > "google-play-key.json"
- run:
name: Run fastlane command to deploy to playstore
command: |
bundle exec fastlane deploy<< parameters.flavour >>
# Define a job to be invoked later in a workflow.
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
jobs:
@@ -133,20 +153,20 @@ jobs:
# flavour: << parameters.flavour >>
# - run_ui_tests:
# flavour: << parameters.flavour >>
setup_fastlane:
executor:
name: android/android-machine
tag: 2023.05.1
deploy-to-playstore:
parameters:
flavour:
type: string
default: "Driver"
docker:
- image: cimg/android:2023.07-browsers
auth:
username: ${DOCKER_USERNAME}
password: ${DOCKER_PASSWORD}
steps:
- restore_cache:
key: fastlane-cache-v1-
- run:
command: |
gem install fastlane
- save_cache:
key: fastlane-cache-v1-
paths:
- ~/.rvm/gems
- setup_repo
- deploy_to_play_store:
flavour: << parameters.flavour >>
# Invoke jobs via workflows
# See: https://circleci.com/docs/2.0/configuration-reference/#workflows
workflows:
@@ -155,25 +175,20 @@ workflows:
jobs:
- build-and-test:
flavour: "Driver"
# filters:
# branches:
# ignore:
# - main_admin
- setup_fastlane
- android/deploy-to-play-store:
filters:
branches:
ignore:
- main_admin
- circleci_branch_filter_fix
- deploy-to-playstore:
flavour: "Driver"
filters:
branches:
only:
- main_driver
- circleci_branch_filter_fix
requires:
- build-and-test
executor:
name: android/android-machine
tag: 2023.05.1
keystore-location: "./app/keystore.jks"
release-keystore: "keystore.jks"
lane-name: deployDriver
# requires:
# - build-and-test
# build-release-admin:
# jobs:
# - build-and-test:

View File

@@ -6,9 +6,9 @@ plugins {
id 'androidx.navigation.safeargs'
}
def keyStorePropertiesFile = rootProject.file("keystore.properties")
def keyStoreProperties = new Properties()
keyStoreProperties.load(new FileInputStream(keyStorePropertiesFile))
def relStorePassword = System.getenv("RELEASE_STORE_PASSWORD")
def relKeyPassword = System.getenv("RELEASE_KEY_PASSWORD")
def relKeyAlias = System.getenv("RELEASE_KEY_ALIAS")
android {
compileSdkVersion 31
@@ -37,10 +37,10 @@ android {
signingConfigs {
release {
keyAlias keyStoreProperties['releaseKeyAlias']
keyPassword keyStoreProperties['releaseKeyPassword']
storeFile file(keyStoreProperties['releaseKeyStore'])
storePassword keyStoreProperties['releaseStorePassword']
storePassword relStorePassword
keyPassword relKeyPassword
keyAlias relKeyAlias
storeFile file("./keystore.jks").exists() ? file("./keystore.jks") : null
}
}

View File

@@ -35,7 +35,8 @@ platform :android do
gradle(
task: "clean bundle",
flavor: "Driver",
build_type: "Release")
build_type: "Release"
)
upload_to_play_store(
aab: "app/build/outputs/bundle/driverRelease/app-driver-release.aab",
json_key: "google-play-key.json",

View File

@@ -5,12 +5,19 @@
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.002655">
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.000389544">
</testcase>
<testcase classname="fastlane.lanes" name="1: clean bundleadminRelease" time="86.6186667">
<testcase classname="fastlane.lanes" name="1: clean bundleDriverRelease" time="5.017797615">
</testcase>
<testcase classname="fastlane.lanes" name="2: upload_to_play_store" time="21.58948528">
<failure message="/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/actions/actions_helper.rb:67:in `execute_action&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/runner.rb:229:in `chdir&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/runner.rb:229:in `execute_action&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing&apos;&#10;Fastfile:40:in `block (2 levels) in parsing_binding&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/lane.rb:33:in `call&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/runner.rb:45:in `chdir&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/runner.rb:45:in `execute&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/commands_generator.rb:110:in `block (2 levels) in run&apos;&#10;/var/lib/gems/3.0.0/gems/commander-4.6.0/lib/commander/command.rb:187:in `call&apos;&#10;/var/lib/gems/3.0.0/gems/commander-4.6.0/lib/commander/command.rb:157:in `run&apos;&#10;/var/lib/gems/3.0.0/gems/commander-4.6.0/lib/commander/runner.rb:444:in `run_active_command&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:124:in `run!&apos;&#10;/var/lib/gems/3.0.0/gems/commander-4.6.0/lib/commander/delegates.rb:18:in `run!&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/commands_generator.rb:354:in `run&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/commands_generator.rb:43:in `start&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/fastlane/lib/fastlane/cli_tools_distributor.rb:123:in `take_off&apos;&#10;/var/lib/gems/3.0.0/gems/fastlane-2.214.0/bin/fastlane:23:in `&lt;top (required)&gt;&apos;&#10;/usr/local/bin/fastlane:25:in `load&apos;&#10;/usr/local/bin/fastlane:25:in `&lt;top (required)&gt;&apos;&#10;/usr/share/rubygems-integration/all/gems/bundler-2.3.5/lib/bundler/cli/exec.rb:58:in `load&apos;&#10;/usr/share/rubygems-integration/all/gems/bundler-2.3.5/lib/bundler/cli/exec.rb:58:in `kernel_load&apos;&#10;/usr/share/rubygems-integration/all/gems/bundler-2.3.5/lib/bundler/cli/exec.rb:23:in `run&apos;&#10;/usr/share/rubygems-integration/all/gems/bundler-2.3.5/lib/bundler/cli.rb:484:in `exec&apos;&#10;/usr/share/rubygems-integration/all/gems/bundler-2.3.5/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run&apos;&#10;/usr/share/rubygems-integration/all/gems/bundler-2.3.5/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command&apos;&#10;/usr/share/rubygems-integration/all/gems/bundler-2.3.5/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch&apos;&#10;/usr/share/rubygems-integration/all/gems/bundler-2.3.5/lib/bundler/cli.rb:31:in `dispatch&apos;&#10;/usr/share/rubygems-integration/all/gems/bundler-2.3.5/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start&apos;&#10;/usr/share/rubygems-integration/all/gems/bundler-2.3.5/lib/bundler/cli.rb:25:in `start&apos;&#10;/usr/share/rubygems-integration/all/gems/bundler-2.3.5/exe/bundle:48:in `block in &lt;top (required)&gt;&apos;&#10;/usr/share/rubygems-integration/all/gems/bundler-2.3.5/lib/bundler/friendly_errors.rb:103:in `with_friendly_errors&apos;&#10;/usr/share/rubygems-integration/all/gems/bundler-2.3.5/exe/bundle:36:in `&lt;top (required)&gt;&apos;&#10;/usr/bin/bundle:25:in `load&apos;&#10;/usr/bin/bundle:25:in `&lt;main&gt;&apos;&#10;&#10;Google Api Error: Invalid request - APK specifies a version code that has already been used." />
</testcase>