Merge pull request #130 from astubenbord/feature/fastlane-ci

Feature/fastlane ci
This commit is contained in:
Anton Stubenbord
2023-02-28 22:30:19 +01:00
committed by GitHub
34 changed files with 279 additions and 43 deletions

View File

@@ -0,0 +1,69 @@
## See https://github.com/flutter/gallery/blob/main/.github/workflows/release_deploy_play_store.yml
name: Deploy to Play Store
on:
# Enable manual run
workflow_dispatch:
inputs:
lane:
description: "Fastlane lane"
required: true
default: "alpha"
type: choice
options:
- alpha
- promote_to_beta
- beta
- promote_to_production
- production
# Declare default permissions as read only.
permissions: read-all
jobs:
fastlane-deploy:
runs-on: ubuntu-latest
steps:
# Set up Flutter.
- name: Clone Flutter repository with stable channel
uses: subosito/flutter-action@dbf1fa04f4d2e52c33185153d06cdb5443aa189d
with:
channel: stable
- run: flutter doctor -v
# Setup app
- name: Checkout Paperless mobile, get packages and run code generators
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- run: |
pushd scripts
bash install_dependencies.sh
popd
# Setup Ruby, Bundler, and Gemfile dependencies
- name: Setup Fastlane
uses: ruby/setup-ruby@8df78e55761745aad83acaf3ff12976382356e6d
with:
ruby-version: "2.6"
bundler-cache: true
working-directory: android
- name: Configure Keystore
run: |
echo "$PLAY_STORE_UPLOAD_KEY" | base64 --decode > app/upload-keystore.jks
echo "storeFile=upload-keystore.jks" >> key.properties
echo "keyAlias=$KEYSTORE_KEY_ALIAS" >> key.properties
echo "storePassword=$KEYSTORE_STORE_PASSWORD" >> key.properties
echo "keyPassword=$KEYSTORE_KEY_PASSWORD" >> key.properties
env:
PLAY_STORE_UPLOAD_KEY: ${{ secrets.PLAY_STORE_UPLOAD_KEY }}
KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }}
KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }}
KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }}
working-directory: android
# Build and deploy with Fastlane (by default, to alpha track) 🚀.
# Naturally, promote_to_production only deploys.
- run: bundle exec fastlane ${{ github.event.inputs.lane || 'alpha' }}
env:
PLAY_STORE_CREDENTIALS: ${{ secrets.PLAY_STORE_CREDENTIALS }}
working-directory: android

View File

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

View File

@@ -1,23 +1,23 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.5)
CFPropertyList (3.0.6)
rexml
addressable (2.8.1)
public_suffix (>= 2.0.2, < 6.0)
artifactory (3.0.15)
atomos (0.1.3)
aws-eventstream (1.2.0)
aws-partitions (1.656.0)
aws-sdk-core (3.166.0)
aws-partitions (1.716.0)
aws-sdk-core (3.170.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.59.0)
aws-sdk-kms (1.62.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.117.1)
aws-sdk-s3 (1.119.1)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
@@ -36,8 +36,8 @@ GEM
unf (>= 0.0.5, < 1.0.0)
dotenv (2.8.1)
emoji_regex (3.2.3)
excon (0.93.1)
faraday (1.10.2)
excon (0.99.0)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
@@ -66,7 +66,7 @@ GEM
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.2.6)
fastlane (2.210.1)
fastlane (2.212.1)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
@@ -106,9 +106,9 @@ GEM
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.30.0)
google-apis-androidpublisher_v3 (0.34.0)
google-apis-core (>= 0.9.1, < 2.a)
google-apis-core (0.9.1)
google-apis-core (0.11.0)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
@@ -117,8 +117,8 @@ GEM
retriable (>= 2.0, < 4.a)
rexml
webrick
google-apis-iamcredentials_v1 (0.16.0)
google-apis-core (>= 0.9.1, < 2.a)
google-apis-iamcredentials_v1 (0.17.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-playcustomapp_v1 (0.12.0)
google-apis-core (>= 0.9.1, < 2.a)
google-apis-storage_v1 (0.19.0)
@@ -148,11 +148,11 @@ GEM
http-cookie (1.0.5)
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.6.1)
json (2.6.2)
jwt (2.5.0)
jmespath (1.6.2)
json (2.6.3)
jwt (2.7.0)
memoist (0.16.2)
mini_magick (4.11.0)
mini_magick (4.12.0)
mini_mime (1.1.2)
multi_json (1.15.0)
multipart-post (2.0.0)
@@ -160,8 +160,8 @@ GEM
naturally (2.2.1)
optparse (0.1.1)
os (1.1.4)
plist (3.6.0)
public_suffix (5.0.0)
plist (3.7.0)
public_suffix (5.0.1)
rake (13.0.6)
representable (3.2.0)
declarative (< 0.1.0)
@@ -178,7 +178,7 @@ GEM
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simctl (1.6.8)
simctl (1.6.10)
CFPropertyList
naturally
terminal-notifier (2.0.0)
@@ -192,9 +192,10 @@ GEM
uber (0.1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2-x64-mingw-ucrt)
unf_ext (0.0.8.2)
unf_ext (0.0.8.2-x86-mingw32)
unicode-display_width (1.8.0)
webrick (1.7.0)
webrick (1.8.1)
word_wrap (1.0.0)
xcodeproj (1.22.0)
CFPropertyList (>= 2.3.3, < 4.0)
@@ -209,10 +210,11 @@ GEM
xcpretty (~> 0.2, >= 0.0.7)
PLATFORMS
x64-mingw-ucrt
ruby
x86-mingw32
DEPENDENCIES
fastlane
BUNDLED WITH
2.3.7
2.1.4

View File

@@ -6,7 +6,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:7.2.1'
classpath 'com.android.tools.build:gradle:7.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// implementation 'androidx.window:window:1.0.0'
// implementation 'androidx.window:window-java:1.0.0'

1
android/fastlane/Appfile Normal file
View File

@@ -0,0 +1 @@
package_name("de.astubenbord.paperless_mobile")

73
android/fastlane/Fastfile Normal file
View File

@@ -0,0 +1,73 @@
# 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
desc "Runs all the tests"
lane :test do
gradle(task: "test")
end
desc "Submit a new alpha build to Google Play"
lane :alpha do
sh "flutter build appbundle -v"
upload_to_play_store(
track: 'alpha',
aab: '../build/app/outputs/bundle/release/app-release.aab',
json_key_data: ENV['PLAY_STORE_CREDENTIALS'],
)
end
desc "Promote alpha track to beta"
lane :promote_to_production do
upload_to_play_store(
track: 'alpha',
track_promote_to: 'beta',
skip_upload_changelogs: true,
json_key_data: ENV['PLAY_STORE_CREDENTIALS'],
)
end
desc "Submit a new beta build to Google Play"
lane :alpha do
sh "flutter build appbundle -v"
upload_to_play_store(
track: 'beta',
aab: '../build/app/outputs/bundle/release/app-release.aab',
json_key_data: ENV['PLAY_STORE_CREDENTIALS'],
)
end
desc "Promote beta track to prod"
lane :promote_to_production do
upload_to_play_store(
track: 'beta',
track_promote_to: 'production',
skip_upload_changelogs: true,
json_key_data: ENV['PLAY_STORE_CREDENTIALS'],
)
end
desc "Submit a new production build to Google Play"
lane :production do
sh "flutter build appbundle -v"
upload_to_play_store(
track: 'production',
aab: '../build/app/outputs/bundle/release/app-release.aab',
json_key_data: ENV['PLAY_STORE_CREDENTIALS'],
)
end
end

View File

@@ -0,0 +1,48 @@
fastlane documentation
----
# Installation
Make sure you have the latest version of the Xcode command line tools installed:
```sh
xcode-select --install
```
For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane)
# Available Actions
## Android
### android test
```sh
[bundle exec] fastlane android test
```
Runs all the tests
### android beta
```sh
[bundle exec] fastlane android beta
```
Submit a new Beta Build to Crashlytics Beta
### android deploy
```sh
[bundle exec] fastlane android deploy
```
Deploy a new version to the Google Play
----
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).

View File

@@ -0,0 +1 @@
* Verbessern der Dateipfad-Verarbeitung beim Hochladen/Teilen von Dokumenten

View File

@@ -0,0 +1,18 @@
Ein (fast) vollwertiger mobiler Paperless client kompatibel mit Paperless.
Das Benutzen der App setzt den Zugang zu einer laufenden Paperless-ng*x Instanz voraus.
✔️ Betrachte und suche Dokumente
✔️ Bearbeite, lösche oder füge neue Dokumente hinzu
✔️ Teile Dokumente, lade sie herunter oder betrachte deine Dateien
✔️ Verwalte Korrespondenten, Dokumenttypen, Tags oder Speicherpfade
✔️ Scanne und lade Dokumente mit bereits zugewiesenen Werten hoch
✔️ Überprüfe und verarbeite neue Dokumente im Posteingang
✔️ Sichere deine Daten mit biometrischer Authentifizierung
✔️ Unterstützung für TLS-Mutual Authentucation (Client Zertifikate)
✔️ Moderne, intuitive Nutzeroberfläche basierend auf der Material Design 3 Spezifikation
✔️ Heller und Dunkler Modus sowie Unterstützung für dynamische Farbgebung (Android 12+)
✔️ Verfügbar in Deutsch, Englisch, Tchechisch* und Türkish*
* Noch nicht vollständig übersetzt

View File

@@ -0,0 +1 @@
Ein (fast) vollwertiger mobiler Paperless client.

View File

View File

@@ -0,0 +1 @@
* Fix file path splitting when uploading/sharing files

View File

@@ -0,0 +1,18 @@
An (almost) fully fledged mobile Paperless client compatible with Paperless.
Using this app requires access to running a Paperless-ng*x instance.
✔️ View and search documents
✔️ Add, delete or edit documents
✔️ Share, download and preview your files
✔️ Manage correspondents, document types, tags and storage paths
✔️ Scan and upload documents with preset correspondent, document type, tags and creation date
✔️ Review and quickly process newly added documents in the inbox
✔️ Secure your data with biometric authentication
✔️ Support for TLS mutual authentication (client certificates)
✔️ Modern, intuitive UI built according to the Material Design 3 specification
✔️ Light and dark theme and support for dynamic color (Android 12+)
✔️ Available in English, German, Czech* and Turkish* language
* Not fully translated yet

View File

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 252 KiB

View File

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 252 KiB

View File

Before

Width:  |  Height:  |  Size: 249 KiB

After

Width:  |  Height:  |  Size: 249 KiB

View File

Before

Width:  |  Height:  |  Size: 263 KiB

After

Width:  |  Height:  |  Size: 263 KiB

View File

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 252 KiB

View File

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 194 KiB

View File

Before

Width:  |  Height:  |  Size: 258 KiB

After

Width:  |  Height:  |  Size: 258 KiB

View File

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 161 KiB

View File

@@ -0,0 +1 @@
An (almost) fully fledged mobile Paperless client.

View File

@@ -0,0 +1 @@
Paperless Mobile

View File

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite name="fastlane.lanes">
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.0014968">
</testcase>
<testcase classname="fastlane.lanes" name="1: clean assembleRelease" time="96.2749608">
</testcase>
</testsuite>
</testsuites>

View File

@@ -1,3 +1,4 @@
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
android.suppressUnsupportedCompileSdk=33

View File

@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip

View File

@@ -1 +0,0 @@
* Add F-Droid metadata

View File

@@ -1,15 +0,0 @@
With this app you can conveniently add, manage or simply find documents stored in your paperless server without any compromises.
🚀 Features
✔️ View your documents at a glance, in a compact list or a more detailed grid view
✔️ Add, delete or edit your documents
✔️ Share, download and preview PDF files
✔️ Manage and assign correspondents, document types, tags and storage paths
✔️ Scan and upload documents to paperless with preset correspondent, document type, tags and creation date
✔️ Upload existing documents from other apps via Paperless Mobile
✔️ See all new documents in a dedicated inbox
✔️ Search for documents using a wide range of filter criteria
✔️ Secure your data with biometric authentication across sessions
✔️ Support for TLS mutual authentication (client certificates)
✔️ Modern, intuitive UI built according to the Material Design 3 specification
✔️ Available in English and German language (more to come!)

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -1 +0,0 @@
An (almost) fully fledged Paperless mobile client.