chore: Implement playstore CD

This commit is contained in:
Christian Pauly 2020-11-22 09:06:07 +01:00
parent b6fa757015
commit b5beec7e11
18 changed files with 115 additions and 12 deletions

1
.gitignore vendored
View File

@ -48,4 +48,5 @@ lib/generated_plugin_registrant.dart
/android/key.properties
**/android/app/.cxx
android/key.jks
android/keys.json
lib/l10n_old

View File

@ -67,10 +67,6 @@ build_android_apk:
stage: coverage
before_script: [./scripts/prepare-android-release.sh]
script: [./scripts/build-android-apk.sh]
variables:
FDROID_KEY: ${FDROID_KEY}
FDROID_KEY_PASS: ${FDROID_KEY_PASS}
GOOGLE_SERVICES: ${GOOGLE_SERVICES}
artifacts:
when: on_success
paths:
@ -82,17 +78,13 @@ build_android_apk:
build_android_appbundle:
stage: coverage
before_script: [./scripts/prepare-android-release.sh]
script: [./scripts/build-android-appbundle.sh]
variables:
FDROID_KEY: ${FDROID_KEY}
FDROID_KEY_PASS: ${FDROID_KEY_PASS}
GOOGLE_SERVICES: ${GOOGLE_SERVICES}
script: [./scripts/release-playstore-beta.sh]
artifacts:
when: on_success
paths:
- build/android/app-release.aab
only:
- main
#only:
# - main
upload_to_fdroid_repo:
stage: release
@ -239,6 +231,11 @@ upload-windows:
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file package.tar.gz ${PACKAGE_REGISTRY_URL}/fluffychat-windows.tar.gz
upload-playstore:
extends: .release
stage: deploy
script: [./scripts/release-playstore.sh]
release:
extends: .release
image: registry.gitlab.com/gitlab-org/release-cli:latest

3
android/Gemfile Normal file
View File

@ -0,0 +1,3 @@
source "https://rubygems.org"
gem "fastlane"

2
android/fastlane/Appfile Normal file
View File

@ -0,0 +1,2 @@
json_key_file("keys.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one
package_name("chat.fluffy.fluffychat") # e.g. com.krausefx.app

49
android/fastlane/Fastfile Normal file
View File

@ -0,0 +1,49 @@
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
# https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
# https://docs.fastlane.tools/plugins/available-plugins
#
# Uncomment the line if you want fastlane to automatically update itself
update_fastlane
default_platform(:android)
platform :android do
lane :set_build_code_beta do
versions = google_play_track_version_codes(
track: "beta",
json_key: "./keys.json"
)
last_version = versions[0].to_i
Dir.chdir("../..") do
re = /version:\s([0-9]*\.[0-9]*\.[0-9]*)\+[0-9]/i
config = File.read("./pubspec.yaml")
version_name = config.match(re).captures
subst = "version: #{version_name[0]}+#{last_version+1}"
result = config.gsub(re, subst)
File.open("./pubspec.yaml", 'w') { |file| file.write(result) }
end
end
lane :deploy_beta_test do
versions = google_play_track_version_codes(
track: "beta",
json_key: "./keys.json"
)
last_version = versions[0].to_i
upload_to_play_store(track: 'beta', aab: '../build/app/outputs/bundle/release/app-release.aab', version_code: "#{last_version+1}")
end
lane :deploy_release do
upload_to_play_store(track: 'beta', track_promote_to: "production", deactivate_on_promote: false, skip_upload_changelogs: true)
end

View File

@ -0,0 +1 @@
Check out https://gitlab.com/ChristianPauly/fluffychat-flutter/-/blob/main/CHANGELOG.md for the changelog.

View File

@ -0,0 +1,32 @@
FluffyChat is an open, nonprofit and cute matrix messenger app for Ubuntu Touch, Android and iOS.
Open
Opensource and open development where everyone can join.
Nonprofit
FluffyChat is donation funded.
Cute ♥
Cute design and many theme settings including a dark mode.
One-to-one and groupchats
Unlimited groups and direct chats.
Easy
FluffyChat is made as simple to use as possible.
Free
Free to use for everyone without ads.
Decentralized
There is no "FluffyChat server" you are forced to use. Use the server you find trustworthy or host your own.
Compatible
Compatible with Riot, Fractal, Nekho and all matrix messengers.
FluffyChat comes with a dream
Imagine a world where everyone can choose the messenger they like and is still able to chat with all of their friends.
A world where there are no companies spying on you when you send selfies to friends and lovers.
And a world where apps are made for fluffyness and not for profit. ♥

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 KiB

View File

@ -0,0 +1 @@
Chat with your friends with FluffyChat.

View File

@ -0,0 +1 @@
FluffyChat

View File

@ -4,4 +4,4 @@ cd android && echo "storePassword=${FDROID_KEY_PASS}" >> key.properties && cd ..
cd android && echo "keyPassword=${FDROID_KEY_PASS}" >> key.properties && cd ..
cd android && echo "keyAlias=key" >> key.properties && cd ..
cd android && echo "storeFile=../key.jks" >> key.properties && cd ..
cd android/app && echo $GOOGLE_SERVICES >> google-services.json && cd ../..
#cd android/app && echo $GOOGLE_SERVICES >> google-services.json && cd ../..

View File

@ -2,6 +2,15 @@
flutter channel stable
flutter upgrade
flutter pub get
cd android
bundle install
bundle update fastlane
#echo $PLAYSTORE_DEPLOY_KEY >> keys.json
bundle exec fastlane set_build_code_beta
cd ..
flutter build appbundle --target-platform android-arm,android-arm64,android-x64
mkdir -p build/android
cp build/app/outputs/bundle/release/app-release.aab build/android/
cd android
bundle exec fastlane deploy_beta_test
cd ..

7
scripts/release-playstore.sh Executable file
View File

@ -0,0 +1,7 @@
#!/usr/bin/env bash
cd android
bundle install
bundle update fastlane
echo $PLAYSTORE_DEPLOY_KEY >> keys.json
bundle exec fastlane deploy_release
cd ..