mirror of
https://gitlab.com/famedly/fluffychat.git
synced 2024-12-23 22:12:34 +01:00
chore: Implement playstore CD
This commit is contained in:
parent
b6fa757015
commit
4c5760c9be
2
.gitignore
vendored
2
.gitignore
vendored
@ -48,4 +48,6 @@ lib/generated_plugin_registrant.dart
|
||||
/android/key.properties
|
||||
**/android/app/.cxx
|
||||
android/key.jks
|
||||
android/keys.json
|
||||
android/Gemfile.lock
|
||||
lib/l10n_old
|
@ -62,15 +62,12 @@ build_android_debug:
|
||||
- build/app/outputs/apk/debug/app-debug.apk
|
||||
except:
|
||||
- main
|
||||
- tags
|
||||
|
||||
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,36 +79,21 @@ 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
|
||||
resource_group: playstore_release
|
||||
only:
|
||||
- main
|
||||
|
||||
upload_to_fdroid_repo:
|
||||
stage: release
|
||||
before_script:
|
||||
##
|
||||
## Install ssh-agent if not already installed.
|
||||
##
|
||||
- 'which ssh-agent || (sudo apt-get update -y && sudo apt-get install openssh-client -y )'
|
||||
##
|
||||
## Install rsync if not already installed.
|
||||
##
|
||||
- 'which rsync || (sudo apt-get update -y && sudo apt-get install rsync -y )'
|
||||
##
|
||||
## Install pcregrep if not already installed.
|
||||
##
|
||||
- 'which pcregrep || (sudo apt-get update -y && sudo apt-get install pcregrep -y )'
|
||||
##
|
||||
## Run ssh-agent (inside the build environment)
|
||||
##
|
||||
- eval $(ssh-agent -s)
|
||||
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||
- mkdir -p ~/.ssh
|
||||
@ -123,8 +105,10 @@ upload_to_fdroid_repo:
|
||||
- rsync -rav -e ssh ./ fluffy@fdroid.nordgedanken.dev:/fdroid/repo
|
||||
- ssh fluffy@fdroid.nordgedanken.dev "cd fdroid && fdroid update"
|
||||
needs: ["build_android_apk"]
|
||||
resource_group: playstore_release
|
||||
allow_failure: true
|
||||
only:
|
||||
- tags
|
||||
- main
|
||||
|
||||
pages:
|
||||
stage: deploy
|
||||
@ -239,6 +223,12 @@ 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]
|
||||
resource_group: playstore_release
|
||||
|
||||
release:
|
||||
extends: .release
|
||||
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
||||
|
3
android/Gemfile
Normal file
3
android/Gemfile
Normal file
@ -0,0 +1,3 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "fastlane"
|
2
android/fastlane/Appfile
Normal file
2
android/fastlane/Appfile
Normal 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
|
50
android/fastlane/Fastfile
Normal file
50
android/fastlane/Fastfile
Normal file
@ -0,0 +1,50 @@
|
||||
# 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_internal do
|
||||
versions = google_play_track_version_codes(
|
||||
track: "internal",
|
||||
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_internal_test do
|
||||
versions = google_play_track_version_codes(
|
||||
track: "internal",
|
||||
json_key: "./keys.json"
|
||||
)
|
||||
last_version = versions[0].to_i
|
||||
upload_to_play_store(track: 'internal', aab: '../build/app/outputs/bundle/release/app-release.aab', version_code: "#{last_version+1}")
|
||||
end
|
||||
|
||||
lane :deploy_release do
|
||||
upload_to_play_store(track: 'internal', track_promote_to: "production", deactivate_on_promote: false, skip_upload_changelogs: true)
|
||||
end
|
||||
end
|
39
android/fastlane/README.md
Normal file
39
android/fastlane/README.md
Normal file
@ -0,0 +1,39 @@
|
||||
fastlane documentation
|
||||
================
|
||||
# Installation
|
||||
|
||||
Make sure you have the latest version of the Xcode command line tools installed:
|
||||
|
||||
```
|
||||
xcode-select --install
|
||||
```
|
||||
|
||||
Install _fastlane_ using
|
||||
```
|
||||
[sudo] gem install fastlane -NV
|
||||
```
|
||||
or alternatively using `brew install fastlane`
|
||||
|
||||
# Available Actions
|
||||
## Android
|
||||
### android set_build_code_beta
|
||||
```
|
||||
fastlane android set_build_code_beta
|
||||
```
|
||||
|
||||
### android deploy_beta_test
|
||||
```
|
||||
fastlane android deploy_beta_test
|
||||
```
|
||||
|
||||
### android deploy_release
|
||||
```
|
||||
fastlane android deploy_release
|
||||
```
|
||||
|
||||
|
||||
----
|
||||
|
||||
This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run.
|
||||
More information about fastlane can be found on [fastlane.tools](https://fastlane.tools).
|
||||
The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
|
@ -0,0 +1 @@
|
||||
Check out https://gitlab.com/ChristianPauly/fluffychat-flutter/-/blob/main/CHANGELOG.md for the changelog.
|
32
android/fastlane/metadata/android/en-US/full_description.txt
Normal file
32
android/fastlane/metadata/android/en-US/full_description.txt
Normal 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 |
BIN
android/fastlane/metadata/android/en-US/images/icon.png
Normal file
BIN
android/fastlane/metadata/android/en-US/images/icon.png
Normal file
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 |
@ -0,0 +1 @@
|
||||
Chat with your friends with FluffyChat.
|
1
android/fastlane/metadata/android/en-US/title.txt
Normal file
1
android/fastlane/metadata/android/en-US/title.txt
Normal file
@ -0,0 +1 @@
|
||||
FluffyChat
|
0
android/fastlane/metadata/android/en-US/video.txt
Normal file
0
android/fastlane/metadata/android/en-US/video.txt
Normal file
23
android/fastlane/report.xml
Normal file
23
android/fastlane/report.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites>
|
||||
<testsuite name="fastlane.lanes">
|
||||
|
||||
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="0: update_fastlane" time="0.094148">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="1: default_platform" time="0.000809">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="2: google_play_track_version_codes" time="1.408525">
|
||||
|
||||
</testcase>
|
||||
|
||||
</testsuite>
|
||||
</testsuites>
|
@ -1,7 +1,7 @@
|
||||
name: fluffychat
|
||||
description: Chat with your friends.
|
||||
publish_to: none
|
||||
version: 0.22.1+50
|
||||
version: 0.22.1+0
|
||||
|
||||
environment:
|
||||
sdk: ">=2.6.0 <3.0.0"
|
||||
|
@ -1,7 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
cd android && echo $FDROID_KEY | base64 --decode --ignore-garbage > key.jks && cd ..
|
||||
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
|
||||
echo $FDROID_KEY | base64 --decode --ignore-garbage > key.jks
|
||||
echo "storePassword=${FDROID_KEY_PASS}" >> key.properties
|
||||
echo "keyPassword=${FDROID_KEY_PASS}" >> key.properties
|
||||
echo "keyAlias=key" >> key.properties
|
||||
echo "storeFile=../key.jks" >> key.properties
|
||||
echo $PLAYSTORE_DEPLOY_KEY >> keys.json
|
||||
bundle install
|
||||
bundle update fastlane
|
||||
bundle exec fastlane set_build_code_internal
|
||||
cd app
|
||||
echo $GOOGLE_SERVICES >> google-services.json/..
|
||||
cd ../..
|
@ -5,3 +5,6 @@ flutter pub get
|
||||
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_internal_test
|
||||
cd ..
|
7
scripts/release-playstore.sh
Executable file
7
scripts/release-playstore.sh
Executable 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 ..
|
Loading…
Reference in New Issue
Block a user