Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
9bd0883
mp-#58 Setup CI\CD
udfvirus Aug 17, 2021
e3fc9a2
mp-#58 Setup CI\CD
udfvirus Aug 17, 2021
c79082e
mp-#58 Setup CI\CD
udfvirus Aug 18, 2021
083ecdb
Update actions.yml
udfvirus Aug 18, 2021
69ac5ef
Update actions.yml
udfvirus Aug 18, 2021
c51274e
Update actions.yml
udfvirus Aug 18, 2021
8e0bb10
Update actions.yml
udfvirus Aug 18, 2021
a83f98d
Update actions.yml
udfvirus Aug 18, 2021
32c9928
Update actions.yml
udfvirus Aug 18, 2021
2cd3b3b
Update actions.yml
udfvirus Aug 18, 2021
773c535
Update actions.yml
udfvirus Aug 18, 2021
ee75a0e
Update actions.yml
udfvirus Aug 19, 2021
9a5698f
Update build.gradle
udfvirus Aug 19, 2021
04dfb0d
Update actions.yml
udfvirus Aug 19, 2021
1304f1d
Update actions.yml
udfvirus Aug 19, 2021
4076a76
Add files via upload
udfvirus Aug 19, 2021
7a79a63
Update actions.yml
udfvirus Aug 19, 2021
acea4a0
Update actions.yml
udfvirus Aug 19, 2021
fcb38be
Update actions.yml
udfvirus Aug 19, 2021
0477ea1
Update actions.yml
udfvirus Aug 19, 2021
ec60592
Update actions.yml
udfvirus Aug 19, 2021
84c2200
Update actions.yml
udfvirus Aug 19, 2021
097ac75
Update actions.yml
udfvirus Aug 19, 2021
d8abb1a
Update actions.yml
udfvirus Aug 19, 2021
de65794
Update actions.yml
udfvirus Aug 19, 2021
9e5ddb7
Update actions.yml
udfvirus Aug 19, 2021
f89f242
mp-#58 Setup CI\CD
udfvirus Aug 20, 2021
a92ee67
mp-#58 Setup CI\CD
udfvirus Aug 20, 2021
fd2b35b
mp-#58 Setup CI\CD
udfvirus Aug 20, 2021
f9db4f0
Update actions.yml
udfvirus Aug 20, 2021
406acbe
Update actions.yml
udfvirus Aug 20, 2021
13d7cb8
Update actions.yml
udfvirus Aug 20, 2021
8891be0
Update actions.yml
udfvirus Aug 20, 2021
0fb76e8
Update actions.yml
udfvirus Aug 20, 2021
727d95e
Update actions.yml
udfvirus Aug 20, 2021
b524a1f
Update actions.yml
udfvirus Aug 20, 2021
d57f8fc
Update actions.yml
udfvirus Aug 20, 2021
206e8e3
Update actions.yml
udfvirus Aug 20, 2021
27536ad
Update actions.yml
udfvirus Aug 20, 2021
0305696
Update actions.yml
udfvirus Aug 20, 2021
fc1271b
Update actions.yml
udfvirus Aug 20, 2021
d8e1bd3
Update actions.yml
udfvirus Aug 20, 2021
2fe1cb3
Update actions.yml
udfvirus Aug 20, 2021
b44e0a1
Update actions.yml
udfvirus Aug 20, 2021
cad1b71
Update actions.yml
udfvirus Aug 20, 2021
34b3963
Update actions.yml
udfvirus Aug 20, 2021
7fbd476
Update actions.yml
udfvirus Aug 20, 2021
117232c
Update actions.yml
udfvirus Aug 20, 2021
5b6779a
Update actions.yml
udfvirus Aug 20, 2021
fab7bb0
Update actions.yml
udfvirus Aug 20, 2021
002134a
Update actions.yml
udfvirus Aug 20, 2021
5abbf4e
Update actions.yml
udfvirus Aug 20, 2021
75fcc8a
Update actions.yml
udfvirus Aug 20, 2021
529dfff
Update actions.yml
udfvirus Aug 20, 2021
6df76c4
Update actions.yml
udfvirus Aug 20, 2021
22357a1
Update actions.yml
udfvirus Aug 20, 2021
7a21b47
Update actions.yml
udfvirus Aug 20, 2021
28c2fa4
Update actions.yml
udfvirus Aug 20, 2021
577d1a8
Update actions.yml
udfvirus Aug 20, 2021
26a220a
Update actions.yml
udfvirus Aug 20, 2021
4e1415f
Update actions.yml
udfvirus Aug 20, 2021
2895fef
Update actions.yml
udfvirus Aug 20, 2021
980e834
Update actions.yml
udfvirus Aug 20, 2021
0a0a0a2
Update actions.yml
udfvirus Aug 20, 2021
832b2d1
Update actions.yml
udfvirus Aug 20, 2021
4cd2c72
Update actions.yml
udfvirus Aug 20, 2021
3ea2804
Update actions.yml
udfvirus Aug 20, 2021
ac8fedc
Update actions.yml
udfvirus Aug 20, 2021
3576db6
Update actions.yml
udfvirus Aug 20, 2021
ddef8b8
Update actions.yml
udfvirus Aug 20, 2021
5c224d4
Delete MediaPlayerKeystore.jks
udfvirus Aug 20, 2021
8ab1866
Update actions.yml
udfvirus Aug 20, 2021
fb6447f
Update actions.yml
udfvirus Aug 20, 2021
0ad403e
Update actions.yml
udfvirus Aug 20, 2021
6505004
Update actions.yml
udfvirus Aug 20, 2021
0f4655e
Update actions.yml
udfvirus Aug 20, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
184 changes: 184 additions & 0 deletions .github/workflows/actions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
name: 'Android application builder'
on: push
jobs:

# copy_keystore:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2

# - run: env

# # Add private key to ssh agent
# - run: mkdir ~/.ssh; chmod 700 ~/.ssh
# - run: echo "${{ secrets.PRIVATE_KEY }}" > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa
# - run: eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_rsa
# - run: ssh-keyscan github.com >> ~/.ssh/known_hosts

# # Clone keystore repository
# - run: git clone git@github.com:javavirys/MediaPlayerKeystore.git
# - run: mkdir ~/keystore
# - run: ls
# - run: ls ~
# - run: find . -name '*.jks' -exec cp "{}" ~/keystore/ \;
# - run: ls ~/keystore
# - uses: actions/cache@v2
# id: restore-build
# with:
# path: ~/keystore
# key: ${{ github.sha }}
# Test =================================
copy_keystore:
runs-on: ubuntu-latest
container:
image: javavirys/android:30.0.3
steps:
- uses: actions/checkout@v2

- run: apt install -y git

# Add private key to ssh agent
- run: mkdir /root/.ssh; chmod 700 /root/.ssh
- run: echo "${{ secrets.PRIVATE_KEY }}" > /root/.ssh/id_rsa && chmod 600 /root/.ssh/id_rsa
- run: eval "$(ssh-agent -s)" && ssh-add /root/.ssh/id_rsa
- run: ssh-keyscan github.com >> /root/.ssh/known_hosts

# Clone keystore repository
- run: git clone git@github.com:javavirys/MediaPlayerKeystore.git
- run: mkdir /keystore
# Copy keystore to keystore directory
- run: find . -name '*.jks' -exec cp "{}" /keystore/ \;
- run: ls /keystore
- uses: actions/cache@v2
id: restore-build
with:
path: /keystore
key: ${{ github.sha }}

tests:
needs: [ copy_keystore ]
runs-on: ubuntu-latest
container:
image: javavirys/android:30.0.3
steps:
- uses: actions/checkout@v2

- uses: actions/cache@v2
id: restore-build
with:
path: /keystore
key: ${{ github.sha }}

- run: ls /keystore

- name: Run tests
run: ./gradlew test
env:
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
STORE_FILE: /keystore/keystore.jks
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}

lint:
needs: [ copy_keystore ]
runs-on: ubuntu-latest
container:
image: javavirys/android:30.0.3
steps:
- uses: actions/checkout@v2

- uses: actions/cache@v2
id: restore-build
with:
path: /keystore
key: ${{ github.sha }}

- run: ls /keystore

- name: Run lint
run: ./gradlew lint
env:
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
STORE_FILE: /keystore/keystore.jks
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}

- name: Archive artifacts
uses: actions/upload-artifact@v2
with:
name: lint
path:
app/build/reports

buildApks:
needs: [ lint, tests ]
runs-on: ubuntu-latest
container:
image: javavirys/android:30.0.3
steps:
- uses: actions/checkout@v2

- uses: actions/cache@v2
id: restore-build
with:
path: /keystore
key: ${{ github.sha }}

- run: ls /keystore

- name: Build apks
run: ./gradlew assemble
env:
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
STORE_FILE: /keystore/keystore.jks
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}

- name: Archive artifacts
uses: actions/upload-artifact@v2
with:
name: Apks
path:
app/build/outputs/apk

buildBundles:
needs: [ lint, tests ]
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
container:
image: javavirys/android:30.0.3
steps:
- uses: actions/checkout@v2

- uses: actions/cache@v2
id: restore-build
with:
path: /keystore
key: ${{ github.sha }}

- run: ls /keystore

- name: Build bundles
run: ./gradlew bundle
env:
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
STORE_FILE: /keystore/keystore.jks
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}

- name: Archive artifacts
uses: actions/upload-artifact@v2
with:
name: Bundles
path:
app/build/outputs/bundle

publishToPlay:
needs: [ buildBundles ]
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
container:
image: javavirys/android:30.0.3
steps:
- uses: actions/checkout@v2
- run: echo Not Implemented yet!
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@
.externalNativeBuild
.cxx
local.properties
keystore.properties
4 changes: 3 additions & 1 deletion app/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
/build
/build
*.aab
/release/*
16 changes: 15 additions & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import gradleutils.Keystore

plugins {
id 'com.android.application'
id 'kotlin-android'
Expand All @@ -8,6 +10,8 @@ plugins {
id 'com.google.firebase.crashlytics'
}

def keystore = new Keystore(rootProject)

android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
Expand All @@ -29,8 +33,18 @@ android {

}

signingConfigs {
release {
keyAlias keystore.getProperty('KEY_ALIAS')
keyPassword keystore.getProperty('KEY_PASSWORD')
storeFile file(keystore.getProperty('STORE_FILE'))
storePassword keystore.getProperty('STORE_PASSWORD')
}
}

buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
Expand Down Expand Up @@ -89,4 +103,4 @@ dependencies {
//di
implementation Dependencies.koin
implementation Dependencies.koinExt
}
}
23 changes: 23 additions & 0 deletions buildSrc/src/main/java/gradleutils/Keystore.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package gradleutils;

import org.gradle.api.Project
import java.io.FileInputStream
import java.util.*

class Keystore(rootProject: Project) {

private val keystoreProperties = Properties()

init {
val keystoreFile = rootProject.file("keystore.properties")
if (keystoreFile.exists()) {
keystoreProperties.load(FileInputStream(keystoreFile))
}
}

fun getProperty(key: String): String = when {
keystoreProperties.containsKey(key) -> keystoreProperties[key] as String
System.getenv(key) != null -> System.getenv(key)
else -> throw RuntimeException("Property not found!")
}
}