mirror of
https://gitlab.com/famedly/fluffychat.git
synced 2024-12-24 06:22: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/key.properties
|
||||||
**/android/app/.cxx
|
**/android/app/.cxx
|
||||||
android/key.jks
|
android/key.jks
|
||||||
|
android/keys.json
|
||||||
|
android/Gemfile.lock
|
||||||
lib/l10n_old
|
lib/l10n_old
|
@ -62,15 +62,12 @@ build_android_debug:
|
|||||||
- build/app/outputs/apk/debug/app-debug.apk
|
- build/app/outputs/apk/debug/app-debug.apk
|
||||||
except:
|
except:
|
||||||
- main
|
- main
|
||||||
|
- tags
|
||||||
|
|
||||||
build_android_apk:
|
build_android_apk:
|
||||||
stage: coverage
|
stage: coverage
|
||||||
before_script: [./scripts/prepare-android-release.sh]
|
before_script: [./scripts/prepare-android-release.sh]
|
||||||
script: [./scripts/build-android-apk.sh]
|
script: [./scripts/build-android-apk.sh]
|
||||||
variables:
|
|
||||||
FDROID_KEY: ${FDROID_KEY}
|
|
||||||
FDROID_KEY_PASS: ${FDROID_KEY_PASS}
|
|
||||||
GOOGLE_SERVICES: ${GOOGLE_SERVICES}
|
|
||||||
artifacts:
|
artifacts:
|
||||||
when: on_success
|
when: on_success
|
||||||
paths:
|
paths:
|
||||||
@ -82,36 +79,21 @@ build_android_apk:
|
|||||||
build_android_appbundle:
|
build_android_appbundle:
|
||||||
stage: coverage
|
stage: coverage
|
||||||
before_script: [./scripts/prepare-android-release.sh]
|
before_script: [./scripts/prepare-android-release.sh]
|
||||||
script: [./scripts/build-android-appbundle.sh]
|
script: [./scripts/release-playstore-beta.sh]
|
||||||
variables:
|
|
||||||
FDROID_KEY: ${FDROID_KEY}
|
|
||||||
FDROID_KEY_PASS: ${FDROID_KEY_PASS}
|
|
||||||
GOOGLE_SERVICES: ${GOOGLE_SERVICES}
|
|
||||||
artifacts:
|
artifacts:
|
||||||
when: on_success
|
when: on_success
|
||||||
paths:
|
paths:
|
||||||
- build/android/app-release.aab
|
- build/android/app-release.aab
|
||||||
|
resource_group: playstore_release
|
||||||
only:
|
only:
|
||||||
- main
|
- main
|
||||||
|
|
||||||
upload_to_fdroid_repo:
|
upload_to_fdroid_repo:
|
||||||
stage: release
|
stage: release
|
||||||
before_script:
|
before_script:
|
||||||
##
|
|
||||||
## Install ssh-agent if not already installed.
|
|
||||||
##
|
|
||||||
- 'which ssh-agent || (sudo apt-get update -y && sudo apt-get install openssh-client -y )'
|
- '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 )'
|
- '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 )'
|
- 'which pcregrep || (sudo apt-get update -y && sudo apt-get install pcregrep -y )'
|
||||||
##
|
|
||||||
## Run ssh-agent (inside the build environment)
|
|
||||||
##
|
|
||||||
- eval $(ssh-agent -s)
|
- eval $(ssh-agent -s)
|
||||||
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||||
- mkdir -p ~/.ssh
|
- mkdir -p ~/.ssh
|
||||||
@ -123,8 +105,10 @@ upload_to_fdroid_repo:
|
|||||||
- rsync -rav -e ssh ./ fluffy@fdroid.nordgedanken.dev:/fdroid/repo
|
- rsync -rav -e ssh ./ fluffy@fdroid.nordgedanken.dev:/fdroid/repo
|
||||||
- ssh fluffy@fdroid.nordgedanken.dev "cd fdroid && fdroid update"
|
- ssh fluffy@fdroid.nordgedanken.dev "cd fdroid && fdroid update"
|
||||||
needs: ["build_android_apk"]
|
needs: ["build_android_apk"]
|
||||||
|
resource_group: playstore_release
|
||||||
|
allow_failure: true
|
||||||
only:
|
only:
|
||||||
- tags
|
- main
|
||||||
|
|
||||||
pages:
|
pages:
|
||||||
stage: deploy
|
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
|
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:
|
release:
|
||||||
extends: .release
|
extends: .release
|
||||||
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
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
|
name: fluffychat
|
||||||
description: Chat with your friends.
|
description: Chat with your friends.
|
||||||
publish_to: none
|
publish_to: none
|
||||||
version: 0.22.1+50
|
version: 0.22.1+0
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.6.0 <3.0.0"
|
sdk: ">=2.6.0 <3.0.0"
|
||||||
|
@ -1,7 +1,14 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
cd android && echo $FDROID_KEY | base64 --decode --ignore-garbage > key.jks && cd ..
|
cd android
|
||||||
cd android && echo "storePassword=${FDROID_KEY_PASS}" >> key.properties && cd ..
|
echo $FDROID_KEY | base64 --decode --ignore-garbage > key.jks
|
||||||
cd android && echo "keyPassword=${FDROID_KEY_PASS}" >> key.properties && cd ..
|
echo "storePassword=${FDROID_KEY_PASS}" >> key.properties
|
||||||
cd android && echo "keyAlias=key" >> key.properties && cd ..
|
echo "keyPassword=${FDROID_KEY_PASS}" >> key.properties
|
||||||
cd android && echo "storeFile=../key.jks" >> key.properties && cd ..
|
echo "keyAlias=key" >> key.properties
|
||||||
cd android/app && echo $GOOGLE_SERVICES >> google-services.json && cd ../..
|
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
|
flutter build appbundle --target-platform android-arm,android-arm64,android-x64
|
||||||
mkdir -p build/android
|
mkdir -p build/android
|
||||||
cp build/app/outputs/bundle/release/app-release.aab 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