Skip to content

Commit 81e9616

Browse files
authored
hotfix(refactor): remove initialization module and update workflow (#205)
* chore: remove initializer module * fix: build directory path resolution when using `layout.buildDirectory` * feat(platform): update workflows (add workflow for publishing to maven local, aid us in catching publication issues sooner)
1 parent 171f688 commit 81e9616

File tree

16 files changed

+80
-125
lines changed

16 files changed

+80
-125
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: android-publish-artifact
2+
3+
on:
4+
push:
5+
branches: [ develop ]
6+
pull_request:
7+
branches:
8+
- develop
9+
paths-ignore:
10+
- "app/src/main/**"
11+
12+
permissions:
13+
checks: write
14+
15+
jobs:
16+
publish:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: actions/checkout@v4
20+
- uses: gradle/wrapper-validation-action@v3
21+
- name: set up JDK 17
22+
uses: actions/setup-java@v4
23+
with:
24+
java-version: '17'
25+
distribution: 'adopt'
26+
- name: Wait for tests to succeed
27+
uses: lewagon/[email protected]
28+
with:
29+
ref: ${{ github.ref }}
30+
running-workflow-name: android-publish-artifact
31+
check-name: android-unit-test
32+
repo-token: ${{ secrets.GITHUB_TOKEN }}
33+
wait-interval: 20
34+
- uses: gradle/actions/setup-gradle@v3
35+
- name: Grant execute permission for gradlew
36+
run: chmod +x gradlew
37+
- name: Publish to local maven
38+
run: |
39+
./gradlew build publishMavenPublicationToMavenLocal
40+
- name: Upload artifacts
41+
uses: actions/upload-artifact@v3
42+
with:
43+
name: publications
44+
path: ~/.m2/repository/io/wax911/emoji/
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: android-test
1+
name: android-unit-test
22

33
on:
44
push:
@@ -17,6 +17,7 @@ jobs:
1717
runs-on: ubuntu-latest
1818
steps:
1919
- uses: actions/checkout@v4
20+
- uses: gradle/actions/setup-gradle@v3
2021
- uses: gradle/wrapper-validation-action@v3
2122
- name: set up JDK 17
2223
uses: actions/setup-java@v4
@@ -35,31 +36,3 @@ jobs:
3536
if: always() # always run even if the previous step fails
3637
with:
3738
report_paths: '**/build/test-results/**/TEST-*.xml'
38-
39-
instrumented:
40-
runs-on: macos-latest
41-
strategy:
42-
fail-fast: false
43-
matrix:
44-
api-level:
45-
- 23
46-
steps:
47-
- uses: actions/checkout@v4
48-
- uses: gradle/wrapper-validation-action@v3
49-
- uses: actions/setup-java@v4
50-
with:
51-
java-version: '17'
52-
distribution: 'adopt'
53-
- uses: gradle/gradle-build-action@v3
54-
- name: Run Tests
55-
uses: reactivecircus/android-emulator-runner@v2
56-
with:
57-
api-level: ${{ matrix.api-level }}
58-
script: ./gradlew connectedCheck
59-
env:
60-
API_LEVEL: ${{ matrix.api-level }}
61-
- name: Publish Integrated Test Report
62-
uses: mikepenz/action-junit-report@v4
63-
if: always() # always run even if the previous step fails
64-
with:
65-
report_paths: '**/build/androidTest-results/**/TEST-*.xml'

.idea/gradle.xml

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle.kts

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ plugins {
77
dependencies {
88
implementation(project(Libraries.AniTrend.Emojify.emojify))
99
implementation(project(Libraries.AniTrend.Emojify.contract))
10-
implementation(project(Libraries.AniTrend.Emojify.initializer))
1110
implementation(project(Libraries.AniTrend.Emojify.serializerKotlinx))
1211

1312
implementation(libs.google.android.material)
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,27 @@
11
package io.wax911.emojifysample
22

3+
import android.content.Context
4+
import androidx.startup.Initializer
5+
import io.wax911.emojify.EmojiManager
36
import io.wax911.emojify.contract.serializer.IEmojiDeserializer
4-
import io.wax911.emojify.initializer.AbstractEmojiInitializer
57
import io.wax911.emojify.serializer.kotlinx.KotlinxDeserializer
68

7-
class EmojiInitializer : AbstractEmojiInitializer() {
8-
override val serializer: IEmojiDeserializer = KotlinxDeserializer()
9+
class EmojiInitializer : Initializer<EmojiManager> {
10+
private val serializer: IEmojiDeserializer = KotlinxDeserializer()
11+
12+
/**
13+
* Initializes and a component given the application [Context]
14+
*
15+
* @param context The application context.
16+
*/
17+
override fun create(context: Context) = EmojiManager.create(context, serializer)
18+
19+
/**
20+
* @return A list of dependencies that this [Initializer] depends on. This is
21+
* used to determine initialization order of [Initializer]s.
22+
*
23+
* For e.g. if a [Initializer] `B` defines another
24+
* [Initializer] `A` as its dependency, then `A` gets initialized before `B`.
25+
*/
26+
override fun dependencies() = emptyList<Class<out Initializer<*>>>()
927
}

build.gradle.kts

+10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
2+
import org.jetbrains.dokka.gradle.DokkaMultiModuleTask
3+
4+
plugins {
5+
id("org.jetbrains.dokka")
6+
}
27

38
buildscript {
49
repositories {
@@ -18,3 +23,8 @@ allprojects {
1823
mavenCentral()
1924
}
2025
}
26+
27+
tasks.withType(DokkaMultiModuleTask::class.java) {
28+
outputDirectory.set(rootProject.file("dokka-docs"))
29+
failOnWarning.set(false)
30+
}

buildSrc/src/main/java/io/wax911/emoji/buildSrc/Libraries.kt

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ object Libraries {
88
object Emojify {
99
val emojify = Modules.Library.Emojify.path()
1010
val contract = Modules.Library.Contract.path()
11-
val initializer = Modules.Library.Initializer.path()
1211
val serializerKotlinx = Modules.Library.SerializerKotlinX.path()
1312
val serializerGson = Modules.Library.SerializerGson.path()
1413
val serializerMoshi = Modules.Library.SerializerMoshi.path()

buildSrc/src/main/java/io/wax911/emoji/buildSrc/module/Modules.kt

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ internal object Modules {
1818
enum class Library(override val id: String) : Module {
1919
Emojify("emojify"),
2020
Contract("contract"),
21-
Initializer("initializer"),
2221
SerializerKotlinX("serializer:kotlinx"),
2322
SerializerGson("serializer:gson"),
2423
SerializerMoshi("serializer:moshi"),

buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/components/AndroidConfiguration.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ internal fun Project.configureSpotless() {
1919
spotlessExtension().run {
2020
kotlin {
2121
target("**/kotlin/**/*.kt")
22-
targetExclude("${layout.buildDirectory}/**/*.kt", "**/test/**/*.kt", "bin/**/*.kt")
22+
targetExclude("${layout.buildDirectory.get()}/**/*.kt", "**/test/**/*.kt", "bin/**/*.kt")
2323
ktlint(libs.versions.ktlint.get())
2424
licenseHeaderFile(rootProject.file("spotless/copyright.kt"))
2525
}

buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/components/AndroidOptions.kt

+2-7
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@ import java.net.URL
1818

1919
private fun Project.dependenciesOfProject(): List<Modules.Module> {
2020
return when (project.name) {
21-
Modules.Library.Initializer.id -> listOf(
22-
Modules.Library.Contract,
23-
Modules.Library.Emojify,
24-
)
2521
Modules.Library.Emojify.id -> listOf(
2622
Modules.Library.Contract,
2723
)
@@ -46,7 +42,7 @@ private fun Project.createMavenPublicationUsing(sourcesJar: Jar) {
4642
version = props[PropertyTypes.VERSION]
4743

4844
artifact(sourcesJar)
49-
artifact("${project.layout.buildDirectory}/outputs/aar/${project.name}-release.aar")
45+
artifact("${project.layout.buildDirectory.get()}/outputs/aar/${project.name}-release.aar")
5046
from(component)
5147

5248
pom {
@@ -185,7 +181,6 @@ private fun Project.createDokkaTaskProvider() = tasks.named<DokkaTask>("dokkaHtm
185181
}
186182
}
187183

188-
189184
internal fun Project.configureOptions() {
190185
if (isLibraryModule()) {
191186
println("Applying additional tasks options for dokka and javadoc on ${project.path}")
@@ -198,7 +193,7 @@ internal fun Project.configureOptions() {
198193
}
199194

200195
val classesJar by tasks.register("classesJar", Jar::class.java) {
201-
from("${project.layout.buildDirectory}/intermediates/classes/release")
196+
from("${project.layout.buildDirectory.get()}/intermediates/classes/release")
202197
}
203198

204199
artifacts {

initializer/.gitignore

-1
This file was deleted.

initializer/build.gradle.kts

-15
This file was deleted.

initializer/src/main/AndroidManifest.xml

-15
This file was deleted.

initializer/src/main/kotlin/io/wax911/emojify/initializer/AbstractEmojiInitializer.kt

-45
This file was deleted.

settings.gradle.kts

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
rootProject.name = "android-emojify"
22
include(":emojify")
33
include(":contract")
4-
include(":initializer")
54
include(":serializer:kotlinx")
65
include(":serializer:gson")
76
include(":serializer:moshi")

0 commit comments

Comments
 (0)