Skip to content

Commit

Permalink
Merge branch 'dev' into 'master'
Browse files Browse the repository at this point in the history
Release 0.5.0

See merge request AutSoft/AndroidChapter/rainbow-cake/rainbow-cake!36
  • Loading branch information
zsmb13 committed Nov 1, 2019
2 parents c725047 + 8b89ed1 commit a9442c5
Show file tree
Hide file tree
Showing 22 changed files with 368 additions and 311 deletions.
227 changes: 45 additions & 182 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,7 @@
image: registry.gitlab.com/hardysim/android-ci:latest

########## Global settings ##########

cache:
paths:
- .gradle
- .android/build-cache/

stages:
- build base library
- build modules
- demo app build
- build
- test
- deploy

Expand All @@ -20,15 +11,21 @@ before_script:
- mkdir .gradle && echo "org.gradle.jvmargs=-Xmx4096m -XX\:+HeapDumpOnOutOfMemoryError -Dfile.encoding\=UTF-8" > .gradle/gradle.properties
- chmod +x ./gradlew

########## Job templates ##########

.debugBuild: &debugBuild
debug build:
stage: build
tags:
- docker
script:
- >
./gradlew
${MODULE_NAME}:assembleDebug
rainbow-cake-core:assembleDebug
rainbow-cake-test:assembleDebug
rainbow-cake-dagger:assembleDebug
rainbow-cake-koin:assembleDebug
rainbow-cake-navigation:assembleDebug
rainbow-cake-channels:assembleDebug
rainbow-cake-timber:assembleDebug
demo:assembleDebug
artifacts:
name: "$CI_COMMIT_REF_NAME"
paths:
Expand All @@ -37,202 +34,68 @@ before_script:
except:
- tags

.releaseBuild: &releaseBuild
instrumentation test:
stage: test
tags:
- docker
- android
before_script:
- echo UI teszt
script:
- >
./gradlew
${MODULE_NAME}:assembleRelease
${MODULE_NAME}:androidSourcesJar
- ./gradlew connectedAndroidTest
artifacts:
name: "$CI_COMMIT_REF_NAME"
paths:
- "*/build"
expire_in: 2 hours
only:
- /^.*-RELEASE$/
except:
- tags
dependencies:
- debug build

.instrumentationTest: &instrumentationTest
stage: test
release build:
stage: build
tags:
- android
before_script:
- echo UI teszt
- docker
script:
- ./gradlew ${MODULE_NAME}:connectedAndroidTest
- >
./gradlew
rainbow-cake-core:assembleRelease
rainbow-cake-test:assembleRelease
rainbow-cake-dagger:assembleRelease
rainbow-cake-koin:assembleRelease
rainbow-cake-navigation:assembleRelease
rainbow-cake-channels:assembleRelease
rainbow-cake-timber:assembleRelease
rainbow-cake-core:androidSourcesJar
rainbow-cake-test:androidSourcesJar
rainbow-cake-dagger:androidSourcesJar
rainbow-cake-koin:androidSourcesJar
rainbow-cake-navigation:androidSourcesJar
rainbow-cake-channels:androidSourcesJar
rainbow-cake-timber:androidSourcesJar
artifacts:
name: "$CI_COMMIT_REF_NAME"
paths:
- "*/build"
expire_in: 2 hours
except:
- tags
only:
- /^.*-RELEASE$/

.deployMavenCentral: &deployMavenCentral
deploy to mavencentral:
stage: deploy
tags:
- docker
before_script:
- echo $GPG_KEY_CONTENTS | base64 -d > /secret.gpg
- ls -al /
script:
- ./gradlew ${MODULE_NAME}:uploadArchives
- ./gradlew uploadArchives
artifacts:
name: "$CI_COMMIT_REF_NAME"
paths:
- "*/build"
expire_in: 2 hours
only:
- /^.*-RELEASE$/

########## Concrete jobs ##########

### Base library build ###

rainbow-cake-core debug build:
<<: *debugBuild
stage: build base library
variables:
MODULE_NAME: rainbow-cake-core

rainbow-cake-core release build:
<<: *releaseBuild
stage: build base library
variables:
MODULE_NAME: rainbow-cake-core

### Module library builds ###

rainbow-cake-timber debug build:
<<: *debugBuild
stage: build modules
variables:
MODULE_NAME: rainbow-cake-timber

rainbow-cake-timber release build:
<<: *releaseBuild
stage: build modules
variables:
MODULE_NAME: rainbow-cake-timber

rainbow-cake-navigation debug build:
<<: *debugBuild
stage: build modules
variables:
MODULE_NAME: rainbow-cake-navigation

rainbow-cake-navigation release build:
<<: *releaseBuild
stage: build modules
variables:
MODULE_NAME: rainbow-cake-navigation

rainbow-cake-channels debug build:
<<: *debugBuild
stage: build modules
variables:
MODULE_NAME: rainbow-cake-channels

rainbow-cake-channels release build:
<<: *releaseBuild
stage: build modules
variables:
MODULE_NAME: rainbow-cake-channels

rainbow-cake-dagger debug build:
<<: *debugBuild
stage: build modules
variables:
MODULE_NAME: rainbow-cake-dagger

rainbow-cake-dagger release build:
<<: *releaseBuild
stage: build modules
variables:
MODULE_NAME: rainbow-cake-dagger

rainbow-cake-koin debug build:
<<: *debugBuild
stage: build modules
variables:
MODULE_NAME: rainbow-cake-koin

rainbow-cake-koin release build:
<<: *releaseBuild
stage: build modules
variables:
MODULE_NAME: rainbow-cake-koin

### Demo app build ###

demo app debug build:
<<: *debugBuild
stage: demo app build
variables:
MODULE_NAME: demo
dependencies:
- rainbow-cake-core debug build
- rainbow-cake-dagger debug build
- rainbow-cake-timber debug build
- rainbow-cake-navigation debug build

### Tests ###

rainbow-cake-core instrumentation test:
<<: *instrumentationTest
variables:
MODULE_NAME: rainbow-cake-core
dependencies:
- rainbow-cake-core debug build

rainbow-cake-navigation instrumentation test:
<<: *instrumentationTest
variables:
MODULE_NAME: rainbow-cake-navigation
dependencies:
- rainbow-cake-navigation debug build

### Deployment ###

rainbow-cake-core deploy to mavencentral:
<<: *deployMavenCentral
variables:
MODULE_NAME: rainbow-cake-core
dependencies:
- rainbow-cake-core release build

rainbow-cake-timber deploy to mavencentral:
<<: *deployMavenCentral
variables:
MODULE_NAME: rainbow-cake-timber
dependencies:
- rainbow-cake-timber release build

rainbow-cake-navigation deploy to mavencentral:
<<: *deployMavenCentral
variables:
MODULE_NAME: rainbow-cake-navigation
dependencies:
- rainbow-cake-navigation release build

rainbow-cake-channels deploy to mavencentral:
<<: *deployMavenCentral
variables:
MODULE_NAME: rainbow-cake-channels
dependencies:
- rainbow-cake-channels release build

rainbow-cake-dagger deploy to mavencentral:
<<: *deployMavenCentral
variables:
MODULE_NAME: rainbow-cake-dagger
dependencies:
- rainbow-cake-dagger release build

rainbow-cake-koin deploy to mavencentral:
<<: *deployMavenCentral
variables:
MODULE_NAME: rainbow-cake-koin
dependencies:
- rainbow-cake-koin release build
- release build
37 changes: 34 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
buildscript {
ext.rainbowcake_version = '0.4.4'
ext.rainbowcake_version = '0.5.0'

ext.kotlin_version = '1.3.50'
ext.coroutines_version = '1.3.0'
Expand All @@ -10,9 +10,9 @@ buildscript {
ext.dagger_version = '2.24'
ext.koin_version = '2.0.1'

ext.target_sdk = 28
ext.target_sdk = 29
ext.min_sdk = 19
ext.compile_sdk = 28
ext.compile_sdk = 29

repositories {
google()
Expand All @@ -36,6 +36,37 @@ allprojects {
subprojects { project ->
group = 'co.zsmb'
version = rainbowcake_version
afterEvaluate { p ->
if (p.hasProperty("android")) {
setAndroidProps(p)
}
}
}

void setAndroidProps(Project p) {
p.android {
compileSdkVersion compile_sdk

defaultConfig {
minSdkVersion min_sdk
targetSdkVersion target_sdk

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

packagingOptions {
exclude 'META-INF/atomicfu.kotlin_module'
}

buildTypes {
release {
minifyEnabled false
}
debug {
multiDexEnabled true
}
}
}
}

task clean(type: Delete) {
Expand Down
6 changes: 2 additions & 4 deletions demo/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,8 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
android {
packagingOptions {
exclude 'META-INF/atomicfu.kotlin_module'
}
packagingOptions {
exclude 'META-INF/atomicfu.kotlin_module'
}
}

Expand Down
20 changes: 4 additions & 16 deletions rainbow-cake-channels/build.gradle
Original file line number Diff line number Diff line change
@@ -1,25 +1,13 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

android {
compileSdkVersion compile_sdk

defaultConfig {
minSdkVersion min_sdk
targetSdkVersion target_sdk
}

android {
packagingOptions {
exclude 'META-INF/atomicfu.kotlin_module'
}
}
}

dependencies {
implementation project(':rainbow-cake-core')

implementation "android.arch.lifecycle:extensions:$android_arch_version"
implementation "android.arch.lifecycle:viewmodel:$android_arch_version"
implementation "android.arch.lifecycle:livedata-core:$android_arch_version"
implementation "android.arch.lifecycle:common:$android_arch_version"
implementation "android.arch.lifecycle:runtime:$android_arch_version"

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
Expand Down

0 comments on commit a9442c5

Please sign in to comment.