13 Commits

Author SHA1 Message Date
soraefir
040b9c3af4 Fix CI 2024-03-24 10:26:31 +01:00
soraefir
796c76f36c CI Signing 2024-03-24 10:23:30 +01:00
soraefir
517f0240e3 CI release 2024-03-23 15:12:15 +01:00
soraefir
b02920ca41 CI Autorelease 2024-03-23 15:03:09 +01:00
soraefir
b289648260 CI Artifact 2024-03-23 14:25:04 +01:00
soraefir
b6de7ca409 CI fix tag 2024-03-23 14:13:37 +01:00
soraefir
12fb04974e CI on tag 2024-03-23 14:09:54 +01:00
soraefir
cdd4d6db1b Fix CI 2024-03-23 13:59:01 +01:00
soraefir
a403bdea61 CI testing 2024-03-23 13:50:35 +01:00
657489e255 Merge pull request 'Update plugin com.android.library to v8.3.1' (#4) from renovate/com.android.library-8.x into main
Reviewed-on: #4
2024-03-23 13:32:22 +01:00
95f609bc53 Merge pull request 'Update dependency gradle to v8.7' (#5) from renovate/gradle-8.x into main
Reviewed-on: #5
2024-03-23 13:32:06 +01:00
Renovate Bot
ab5c32f2db Update dependency gradle to v8.7 2024-03-23 01:05:44 +00:00
Renovate Bot
cd8a84531e Update plugin com.android.library to v8.3.1 2024-03-23 01:05:33 +00:00
7 changed files with 118 additions and 9 deletions

62
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,62 @@
name: CI-Android APK
env:
main_project_module: app
playstore_name: KeepassFidelity
on:
push:
branches: [ release ]
tags:
- '**'
pull_request:
branches: [ release ]
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: set up secrets
run: |
echo "${{ secrets.RELEASE_KEYSTORE }}" > keystore.asc
echo "${{ secrets.RELEASE_KEY}}" > key.acs
gpg -d --passphrase "${{ secrets.RELEASE_KEYSTORE_PASSWORD }}" --batch keystore.asc > app/keystore.properties
gpg -d --passphrase "${{ secrets.RELEASE_KEYSTORE_PASSWORD }}" --batch key.asc > app/key.jks
- uses: gradle/wrapper-validation-action@v2
- name: create and checkout branch
if: github.event_name == 'pull_request'
env:
BRANCH: ${{ github.head_ref }}
run: git checkout -B "$BRANCH"
- name: set up JDK
uses: actions/setup-java@v4
with:
java-version: 17
distribution: "temurin"
cache: 'gradle'
- name: Build APK
run: ./gradlew assemble
# - name: Upload APK
# uses: actions/upload-artifact@v4
# with:
# name: app.apk
# path: app/build/outputs/apk/release/app-release.apk
- name: Release
uses: softprops/action-gh-release@v2
with:
files: |
app/build/outputs/apk/release/app-release.apk

4
.gitignore vendored
View File

@@ -7,7 +7,11 @@ local.properties/
.DS_Store .DS_Store
build/ build/
app/build/ app/build/
app/debug/
app/release/
captures/ captures/
.externalNativeBuild .externalNativeBuild
.cxx .cxx
local.properties local.properties
keystore.properties
key.jks

View File

@@ -5,31 +5,59 @@ plugins {
} }
def keystorePropertiesFile = rootProject.file("app/keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android { android {
namespace 'net.helcel.fidelity' namespace 'net.helcel.fidelity'
compileSdk 34 compileSdk 34
defaultConfig { defaultConfig {
applicationId 'net.helcel.fidelity' applicationId 'net.helcel.fidelity'
resValue "string", "app_name", "Keepass Fidelity"
minSdk 28 minSdk 28
targetSdk 34 targetSdk 34
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
} }
buildTypes {
release { signingConfigs {
minifyEnabled false create("release") {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
} }
} }
buildTypes {
debug {
debuggable true
}
release {
minifyEnabled true
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig = signingConfigs.getByName("release")
}
}
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 coreLibraryDesugaringEnabled true
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
encoding 'utf-8'
} }
kotlinOptions { kotlinOptions {
jvmTarget = '1.8' jvmTarget = JavaVersion.VERSION_17
} }
buildFeatures { buildFeatures {
viewBinding true viewBinding true
} }
@@ -37,6 +65,8 @@ android {
dependencies { dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.4'
implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core-ktx:1.12.0' implementation 'androidx.core:core-ktx:1.12.0'
implementation 'androidx.preference:preference-ktx:1.2.1' implementation 'androidx.preference:preference-ktx:1.2.1'

13
app/proguard-rules.pro vendored Normal file
View File

@@ -0,0 +1,13 @@
# Gson uses generic type information stored in a class file when working with
# fields. Proguard removes such information by default, keep it.
-keepattributes Signature
# This is also needed for R8 in compat mode since multiple
# optimizations will remove the generic signature such as class
# merging and argument removal. See:
# https://r8.googlesource.com/r8/+/refs/heads/main/compatibility-faq.md#troubleshooting-gson-gson
-keep class com.google.gson.reflect.TypeToken { *; }
-keep class * extends com.google.gson.reflect.TypeToken
# Optional. For using GSON @Expose annotation
-keepattributes AnnotationDefault,RuntimeVisibleAnnotations

View File

@@ -2,6 +2,6 @@
plugins { plugins {
id 'com.android.application' version '8.3.1' apply false id 'com.android.application' version '8.3.1' apply false
id 'com.android.library' version '8.3.0' apply false id 'com.android.library' version '8.3.1' apply false
id 'org.jetbrains.kotlin.android' version '1.9.23' apply false id 'org.jetbrains.kotlin.android' version '1.9.23' apply false
} }

Binary file not shown.

View File

@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME