Skip to content

Commit 207e756

Browse files
committed
RUM-10163: Add proper CI setup for Coil3
1 parent 451e53c commit 207e756

File tree

7 files changed

+56
-18
lines changed

7 files changed

+56
-18
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ This project hosts the following modules:
4040
- `integrations/***`: a set of libraries integrating Datadog products in third party libraries:
4141
- `integrations/dd-sdk-android-apollo`: a lightweight library providing a bridge integration between Datadog SDK and [Apollo Kotlin](https://github.com/apollographql/apollo-kotlin)
4242
- `integrations/dd-sdk-android-coil`: a lightweight library providing a bridge integration between Datadog SDK and [Coil](https://coil-kt.github.io/coil/);
43+
- `integrations/dd-sdk-android-coil3`: a lightweight library providing a bridge integration between Datadog SDK and [Coil 3](https://coil-kt.github.io/coil/);
4344
- `integrations/dd-sdk-android-compose`: a lightweight library providing a bridge integration between Datadog SDK and [Jetpack Compose](https://developer.android.com/jetpack/compose);
4445
- `integrations/dd-sdk-android-fresco`: a lightweight library providing a bridge integration between Datadog SDK and [Fresco](https://frescolib.org/);
4546
- `integrations/dd-sdk-android-glide`: a lightweight library providing a bridge integration between Datadog SDK and [Glide](https://bumptech.github.io/glide/);

ci/pipelines/default-pipeline.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ analysis:detekt-custom:
118118
- ./gradlew :features:dd-sdk-android-trace-otel:customDetektRules
119119
- ./gradlew :features:dd-sdk-android-webview:customDetektRules
120120
- ./gradlew :integrations:dd-sdk-android-coil:customDetektRules
121+
- ./gradlew :integrations:dd-sdk-android-coil3:customDetektRules
121122
- ./gradlew :integrations:dd-sdk-android-compose:customDetektRules
122123
- ./gradlew :integrations:dd-sdk-android-cronet:customDetektRules
123124
- ./gradlew :integrations:dd-sdk-android-fresco:customDetektRules
@@ -782,6 +783,23 @@ publish:release-coil:
782783
paths:
783784
- integrations/dd-sdk-android-coil/verification-metadata.xml
784785

786+
publish:release-coil3:
787+
tags: [ "arch:amd64" ]
788+
only:
789+
- tags
790+
- develop
791+
image: $CI_IMAGE_DOCKER
792+
stage: publish
793+
timeout: 30m
794+
script:
795+
- !reference [.snippets, set-publishing-credentials]
796+
- ./gradlew :integrations:dd-sdk-android-coil3:publishToSonatype closeSonatypeStagingRepository --stacktrace --no-daemon
797+
artifacts:
798+
when: on_success
799+
expire_in: 7 days
800+
paths:
801+
- integrations/dd-sdk-android-coil3/verification-metadata.xml
802+
785803
publish:release-compose:
786804
tags: [ "arch:amd64" ]
787805
only:
@@ -1116,6 +1134,7 @@ notify:merge-verification-metadata:
11161134
- publish:release-session-replay-compose
11171135
- publish:release-webview
11181136
- publish:release-coil
1137+
- publish:release-coil3
11191138
- publish:release-compose
11201139
- publish:release-cronet
11211140
- publish:release-fresco

features/dd-sdk-android-session-replay-compose/src/main/kotlin/com/datadog/android/sessionreplay/compose/internal/reflection/ComposeReflection.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,16 +184,14 @@ internal fun Field.getSafe(target: Any?): Any? {
184184
return null
185185
}
186186
return try {
187+
@Suppress("UnsafeThirdPartyFunctionCall") // null is checked above so no npe possible
187188
get(target)
188189
} catch (e: IllegalAccessException) {
189190
logReflectionException(name, LOG_TYPE_FIELD, LOG_REASON_FIELD_NO_ACCESSIBLE, e)
190191
null
191192
} catch (e: IllegalArgumentException) {
192193
logReflectionException(name, LOG_TYPE_FIELD, LOG_REASON_INCOMPATIBLE_TYPE, e)
193194
null
194-
} catch (e: NullPointerException) {
195-
logNullPointerException(name, LOG_TYPE_FIELD, e)
196-
null
197195
} catch (e: ExceptionInInitializerError) {
198196
logReflectionException(name, LOG_TYPE_FIELD, LOG_REASON_INITIALIZATION_ERROR, e)
199197
null

integrations/dd-sdk-android-coil/src/test/kotlin/com/datadog/android/coil/DatadogCoilRequestListenerTest.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ import kotlin.reflect.jvm.isAccessible
4949
@MockitoSettings(strictness = Strictness.LENIENT)
5050
internal class DatadogCoilRequestListenerTest {
5151

52-
lateinit var underTest: DatadogCoilRequestListener
52+
private lateinit var testable: DatadogCoilRequestListener
5353

5454
@Mock
5555
lateinit var mockRumMonitor: RumMonitor
@@ -68,7 +68,7 @@ internal class DatadogCoilRequestListenerTest {
6868
isAccessible = true
6969
call(GlobalRumMonitor::class.objectInstance, mockRumMonitor, mockSdkCore)
7070
}
71-
underTest = DatadogCoilRequestListener(mockSdkCore)
71+
testable = DatadogCoilRequestListener(mockSdkCore)
7272
}
7373

7474
@AfterEach
@@ -88,7 +88,7 @@ internal class DatadogCoilRequestListenerTest {
8888
mockRequest = mockImageRequest(fakePath)
8989

9090
// WHEN
91-
underTest.onError(mockRequest, fakeException)
91+
testable.onError(mockRequest, fakeException)
9292

9393
// THEN
9494
val argumentCaptor = argumentCaptor<Map<String, Any?>>()
@@ -114,7 +114,7 @@ internal class DatadogCoilRequestListenerTest {
114114
mockRequest = mockImageRequest(mockUri)
115115

116116
// WHEN
117-
underTest.onError(mockRequest, fakeException)
117+
testable.onError(mockRequest, fakeException)
118118

119119
// THEN
120120
val argumentCaptor = argumentCaptor<Map<String, Any?>>()
@@ -137,7 +137,7 @@ internal class DatadogCoilRequestListenerTest {
137137
mockRequest = mockImageRequest(fakeHttpUrl)
138138

139139
// WHEN
140-
underTest.onError(mockRequest, fakeException)
140+
testable.onError(mockRequest, fakeException)
141141

142142
// THEN
143143
val argumentCaptor = argumentCaptor<Map<String, Any?>>()
@@ -160,7 +160,7 @@ internal class DatadogCoilRequestListenerTest {
160160
mockRequest = mockImageRequest(fakeFile)
161161

162162
// WHEN
163-
underTest.onError(mockRequest, fakeException)
163+
testable.onError(mockRequest, fakeException)
164164

165165
// THEN
166166
val argumentCaptor = argumentCaptor<Map<String, Any?>>()
@@ -183,7 +183,7 @@ internal class DatadogCoilRequestListenerTest {
183183
mockRequest = mockImageRequest(mockDrawable)
184184

185185
// WHEN
186-
underTest.onError(mockRequest, fakeException)
186+
testable.onError(mockRequest, fakeException)
187187

188188
// THEN
189189
val argumentCaptor = argumentCaptor<Map<String, Any?>>()
@@ -203,7 +203,7 @@ internal class DatadogCoilRequestListenerTest {
203203
mockRequest = mockImageRequest(mockDrawable)
204204

205205
// WHEN
206-
underTest.onError(mockRequest, fakeException)
206+
testable.onError(mockRequest, fakeException)
207207

208208
// THEN
209209
val argumentCaptor = argumentCaptor<Map<String, Any?>>()
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Built application files
2+
*.apk
3+
*.ap_
4+
*.aab
5+
6+
# Files for the ART/Dalvik VM
7+
*.dex
8+
9+
# Java class files
10+
*.class
11+
12+
# Generated files
13+
bin/
14+
gen/
15+
out/
16+
17+
# Gradle files
18+
build/
19+

integrations/dd-sdk-android-coil3/src/test/kotlin/com/datadog/android/coil3/DatadogCoilRequestListenerTest.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ import kotlin.reflect.jvm.isAccessible
4848
@MockitoSettings(strictness = Strictness.LENIENT)
4949
internal class DatadogCoilRequestListenerTest {
5050

51-
lateinit var underTest: DatadogCoilRequestListener
51+
private lateinit var testable: DatadogCoilRequestListener
5252

5353
@Mock
5454
lateinit var mockRumMonitor: RumMonitor
@@ -69,7 +69,7 @@ internal class DatadogCoilRequestListenerTest {
6969
isAccessible = true
7070
call(GlobalRumMonitor::class.objectInstance, mockRumMonitor, mockSdkCore)
7171
}
72-
underTest = DatadogCoilRequestListener(mockSdkCore)
72+
testable = DatadogCoilRequestListener(mockSdkCore)
7373
}
7474

7575
@AfterEach
@@ -90,7 +90,7 @@ internal class DatadogCoilRequestListenerTest {
9090
mockErrorResult = mockErrorResult(fakeException)
9191

9292
// WHEN
93-
underTest.onError(mockRequest, mockErrorResult)
93+
testable.onError(mockRequest, mockErrorResult)
9494

9595
// THEN
9696
val argumentCaptor = argumentCaptor<Map<String, Any?>>()
@@ -117,7 +117,7 @@ internal class DatadogCoilRequestListenerTest {
117117
mockErrorResult = mockErrorResult(fakeException)
118118

119119
// WHEN
120-
underTest.onError(mockRequest, mockErrorResult)
120+
testable.onError(mockRequest, mockErrorResult)
121121

122122
// THEN
123123
val argumentCaptor = argumentCaptor<Map<String, Any?>>()
@@ -141,7 +141,7 @@ internal class DatadogCoilRequestListenerTest {
141141
mockErrorResult = mockErrorResult(fakeException)
142142

143143
// WHEN
144-
underTest.onError(mockRequest, mockErrorResult)
144+
testable.onError(mockRequest, mockErrorResult)
145145

146146
// THEN
147147
val argumentCaptor = argumentCaptor<Map<String, Any?>>()
@@ -165,7 +165,7 @@ internal class DatadogCoilRequestListenerTest {
165165
mockErrorResult = mockErrorResult(fakeException)
166166

167167
// WHEN
168-
underTest.onError(mockRequest, mockErrorResult)
168+
testable.onError(mockRequest, mockErrorResult)
169169

170170
// THEN
171171
val argumentCaptor = argumentCaptor<Map<String, Any?>>()
@@ -189,7 +189,7 @@ internal class DatadogCoilRequestListenerTest {
189189
mockErrorResult = mockErrorResult(fakeException)
190190

191191
// WHEN
192-
underTest.onError(mockRequest, mockErrorResult)
192+
testable.onError(mockRequest, mockErrorResult)
193193

194194
// THEN
195195
val argumentCaptor = argumentCaptor<Map<String, Any?>>()

local_ci.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ if [[ $CLEANUP == 1 ]]; then
106106
rm -rf features/dd-sdk-android-trace-otel/build/
107107
rm -rf features/dd-sdk-android-webview/build/
108108
rm -rf integrations/dd-sdk-android-coil/build/
109+
rm -rf integrations/dd-sdk-android-coil3/build/
109110
rm -rf integrations/dd-sdk-android-compose/build/
110111
rm -rf integrations/dd-sdk-android-cronet/build/
111112
rm -rf integrations/dd-sdk-android-fresco/build/

0 commit comments

Comments
 (0)