Skip to content

Commit

Permalink
Merge pull request #170 from hyperskill/release/1.0
Browse files Browse the repository at this point in the history
Release 1.0
  • Loading branch information
ivan-magda authored Sep 23, 2022
2 parents 2c0e22d + ca49be2 commit f6ce568
Show file tree
Hide file tree
Showing 1,407 changed files with 71,044 additions and 1,465 deletions.
8 changes: 8 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[*]
indent_size = 4
tab_width = 4
max_line_length = 120

[*.{kt,kts}]
disabled_rules=import-ordering,package-name,no-multi-spaces,final-newline
max_line_length=off
20 changes: 20 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Specify files to encrypt:
#
# secretfile filter=git-crypt diff=git-crypt
# *.key filter=git-crypt diff=git-crypt
# secretdir/** filter=git-crypt diff=git-crypt

androidHyperskillApp/keys/debug_keystore.properties filter=git-crypt diff=git-crypt
androidHyperskillApp/keys/debug.properties filter=git-crypt diff=git-crypt
androidHyperskillApp/keys/release.properties filter=git-crypt diff=git-crypt
buildsystem/certs/** filter=git-crypt diff=git-crypt
shared/keys/** filter=git-crypt diff=git-crypt
sentry.properties filter=git-crypt diff=git-crypt

iosHyperskillApp/iosHyperskillApp/GoogleService-Info.plist filter=git-crypt diff=git-crypt
iosHyperskillApp/iosHyperskillApp/Sentry-Info.plist filter=git-crypt diff=git-crypt
iosHyperskillApp/fastlane/Appfile filter=git-crypt diff=git-crypt
iosHyperskillApp/fastlane/Devicefile filter=git-crypt diff=git-crypt
iosHyperskillApp/fastlane/metadata/**/review_information/** filter=git-crypt diff=git-crypt

.gitattributes !filter !diff
8 changes: 8 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
shared:
- shared/**

ios:
- iosHyperskillApp/**

android:
- androidHyperskillApp/**
25 changes: 25 additions & 0 deletions .github/workflows/feature.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Feature Branch CI

on:
push:
branches:
- 'feature/**'

jobs:
ci:
name: Run ktlint
runs-on: ubuntu-latest

steps:
- name: Clone Repo
uses: actions/checkout@v2

- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11

- name: Run ktlint
run: bash ./gradlew ktlintCheck --stacktrace
env:
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
12 changes: 12 additions & 0 deletions .github/workflows/label.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Labeler
on: [pull_request]

jobs:
label:

runs-on: ubuntu-latest

steps:
- uses: actions/labeler@v2
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
16 changes: 16 additions & 0 deletions .github/workflows/swiftlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Feature Branch SwiftLint

on:
push:
branches:
- 'feature/**'

jobs:
SwiftLint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run SwiftLint
uses: norio-nomura/[email protected]
with:
args: --config iosHyperskillApp/.swiftlint.yml --path iosHyperskillApp/iosHyperskillApp/Sources --strict
25 changes: 25 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,28 @@
.cxx
local.properties

/.idea/

# Xcode
**/xcuserdata/*

## Obj-C/Swift specific
*.hmap

## App packaging
*.ipa
*.dSYM.zip
*.dSYM

iosHyperskillApp/.build/

iosHyperskillApp/.idea/

## CocoaPods
iosHyperskillApp/Pods/

## fastlane
iosHyperskillApp/fastlane/test_output/
iosHyperskillApp/fastlane/report.xml
## Google Cloud Storage code signing certificates
iosHyperskillApp/gc_keys.json
142 changes: 130 additions & 12 deletions androidHyperskillApp/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,36 +1,154 @@
import org.jetbrains.kotlin.konan.properties.loadProperties
import org.jetbrains.kotlin.konan.properties.propertyString
import com.android.build.api.dsl.ApplicationBuildType

plugins {
id("com.android.application")
kotlin("android")
kotlin("kapt")
kotlin("plugin.serialization")
alias(libs.plugins.sentry.androidGradle)
alias(libs.plugins.firebase.appdistribution.gradle)
}

dependencies {
implementation(project(":shared"))
implementation("com.google.android.material:material:1.4.0")
implementation("androidx.appcompat:appcompat:1.3.1")
implementation("androidx.constraintlayout:constraintlayout:2.1.1")
implementation(libs.android.ui.material)
implementation(libs.android.ui.appcompat)
implementation(libs.android.ui.constraintlayout)
implementation(libs.android.ui.core.ktx)
implementation(libs.android.ui.fragment)
implementation(libs.android.ui.fragment.ktx)
implementation(libs.android.lifecycle.runtime)

implementation(libs.kotlin.coroutines.core)
implementation(libs.kotlin.coroutines.android)

implementation(libs.kit.view.ui)
implementation(libs.kit.view.injection)
implementation(libs.kit.view.redux)
implementation(libs.kit.view.navigation)

implementation(libs.bundles.ktor.common)

implementation(libs.gms.services)
implementation(libs.gms.login)
implementation(libs.viewbinding)
implementation(libs.kit.ui.adapters)

testImplementation(libs.bundles.android.test)

ktlintRuleset(libs.ktlintRules)

implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.1")
implementation(libs.android.material.progress.bar)
implementation(libs.android.sentry)
implementation(libs.android.sentry.fragment)
implementation(libs.android.parcelable)

debugImplementation(libs.android.flipper)
debugImplementation(libs.android.soloader)
releaseImplementation(libs.android.flipper.noop)

implementation(libs.android.reactivex.rxandroid)
implementation(libs.android.reactivex.rxjava)
implementation(libs.android.reactivex.rxkotlin)
implementation(libs.android.coil)
implementation(libs.android.coil.svg)
implementation(libs.android.splashscreen)
implementation(libs.android.timepicker)
}

android {
compileSdkVersion(30)
compileSdk = appVersions.versions.compileSdk.get().toInt()

defaultConfig {
applicationId = "ru.nobird.app.kmm_test.android"
minSdkVersion(21)
targetSdkVersion(30)
versionCode = 1
versionName = "1.0"
applicationId = "org.hyperskill.app.android"
minSdk = appVersions.versions.minSdk.get().toInt()
targetSdk = appVersions.versions.targetSdk.get().toInt()
versionCode = appVersions.versions.versionCode.get().toInt()
versionName = appVersions.versions.versionName.get()
}

signingConfigs {
getByName("debug") {
if (SystemProperties.isCI()) return@getByName
val properties = loadProperties("${project.rootDir}/androidHyperskillApp/keys/debug_keystore.properties")

storeFile = file("../buildsystem/certs/debug.keystore")
storePassword = properties.getProperty("HYPERSKILL_DEBUG_STORE_PASSWORD")
keyAlias = properties.getProperty("HYPERSKILL_DEBUG_KEY_ALIAS")
keyPassword = properties.getProperty("HYPERSKILL_DEBUG_KEY_PASSWORD")

enableV3Signing = true
enableV4Signing = true
}

create("release") {
if (SystemProperties.isCI()) return@create

val keystorePath = SystemProperties.get(project, "HYPERSKILL_KEYSTORE_PATH")
if (keystorePath.isNullOrBlank()) return@create

storeFile = file(keystorePath)
storePassword = SystemProperties.get(project, "HYPERSKILL_RELEASE_STORE_PASSWORD")
keyAlias = SystemProperties.get(project, "HYPERSKILL_RELEASE_KEY_ALIAS")
keyPassword = SystemProperties.get(project, "HYPERSKILL_RELEASE_KEY_PASSWORD")

enableV3Signing = true
enableV4Signing = true
}
}

buildTypes {
fun applyFlavorConfigsFromFile(applicationBuildType: ApplicationBuildType) {
if (SystemProperties.isCI()) return
val properties = loadProperties("${project.rootDir}/androidHyperskillApp/keys/${applicationBuildType.name}.properties")
properties.keys.forEach { name ->
name as String
applicationBuildType.buildConfigField(
type = "String",
name = name,
value = requireNotNull(System.getenv(name) ?: properties.propertyString(name))
)
}
}

getByName("debug") {
signingConfig = signingConfigs.getByName("debug")
applyFlavorConfigsFromFile(this)
firebaseAppDistribution(
configure = {
artifactType = "APK"
groups = "all-android-testers"
releaseNotesFile = "gradle/release-notes.txt"
}
)
}
getByName("release") {
isMinifyEnabled = false
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = true
isShrinkResources = true

proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
applyFlavorConfigsFromFile(this)

firebaseAppDistribution(
configure = {
artifactType = "APK"
groups = "all-android-testers"
releaseNotesFile = "gradle/release-notes.txt"
}
)
}
}

buildFeatures {
viewBinding = true
}
}

ktlint {
filter {
exclude { element -> element.file.path.contains("build/") }
}
}
Binary file added androidHyperskillApp/keys/debug.properties
Binary file not shown.
Binary file added androidHyperskillApp/keys/debug_keystore.properties
Binary file not shown.
Binary file added androidHyperskillApp/keys/release.properties
Binary file not shown.
Loading

0 comments on commit f6ce568

Please sign in to comment.