diff --git a/.github/workflows/android-e2e.yml b/.github/workflows/android-e2e.yml new file mode 100644 index 000000000..23cd9ba3f --- /dev/null +++ b/.github/workflows/android-e2e.yml @@ -0,0 +1,51 @@ +name: 'Android E2E App Tests' + +on: + push: + branches: ['main'] + paths: + - 'e2e/android/**' + - 'sdk/@launchdarkly/observability-android/**' + - '.github/workflows/android-e2e.yml' + pull_request: + types: [opened, synchronize] + paths: + - 'e2e/android/**' + - 'sdk/@launchdarkly/observability-android/**' + - '.github/workflows/android-e2e.yml' + +permissions: + contents: read + +concurrency: ${{ github.workflow }}-${{ github.ref }} +jobs: + test: + name: E2E Tests + runs-on: ubuntu-22.04-8core-32gb + defaults: + run: + working-directory: ./e2e/android + steps: + - uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 17 + + - name: Set up Android SDK + uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3.2.2 commit SHA - https://github.com/android-actions/setup-android/releases/tag/v3.2.2 + + - name: Run unit tests + run: ./gradlew :app:testDebugUnitTest + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: android-e2e-unit-test-results + path: e2e/android/**/build/test-results/**/TEST-*.xml + retention-days: 7 diff --git a/.github/workflows/android-observability.yml b/.github/workflows/android-observability.yml new file mode 100644 index 000000000..17252df11 --- /dev/null +++ b/.github/workflows/android-observability.yml @@ -0,0 +1,49 @@ +name: 'Android Observability' + +on: + push: + branches: ['main'] + paths: + - 'sdk/@launchdarkly/observability-android/**' + - '.github/workflows/android-observability.yml' + pull_request: + types: [opened, synchronize] + paths: + - 'sdk/@launchdarkly/observability-android/**' + - '.github/workflows/android-observability.yml' + +permissions: + contents: read + +concurrency: ${{ github.workflow }}-${{ github.ref }} +jobs: + test: + name: Unit Tests + runs-on: ubuntu-22.04-8core-32gb + defaults: + run: + working-directory: ./sdk/@launchdarkly/observability-android + steps: + - uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 17 + + - name: Set up Android SDK + uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3.2.2 commit SHA - https://github.com/android-actions/setup-android/releases/tag/v3.2.2 + + - name: Run unit tests + run: ./gradlew :lib:testDebugUnitTest + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: android-unit-test-results + path: sdk/@launchdarkly/observability-android/**/build/test-results/**/TEST-*.xml + retention-days: 7 diff --git a/sdk/@launchdarkly/observability-android/lib/src/test/kotlin/com/launchdarkly/observability/replay/SessionReplayExporterTest.kt b/sdk/@launchdarkly/observability-android/lib/src/test/kotlin/com/launchdarkly/observability/replay/SessionReplayExporterTest.kt index 976c5722d..9d00fcae9 100644 --- a/sdk/@launchdarkly/observability-android/lib/src/test/kotlin/com/launchdarkly/observability/replay/SessionReplayExporterTest.kt +++ b/sdk/@launchdarkly/observability-android/lib/src/test/kotlin/com/launchdarkly/observability/replay/SessionReplayExporterTest.kt @@ -22,7 +22,9 @@ class SessionReplayExporterTest { private val identifyEvent = IdentifyItemPayload( attributes = mapOf("key" to "user"), - timestamp = 0L) + timestamp = 0L, + sessionId = null + ) @BeforeEach fun setUp() { @@ -465,7 +467,7 @@ class SessionReplayExporterTest { sessionId?.let { attributesBuilder.put(AttributeKey.stringKey("session.id"), it) } return mockk().apply { - every { getAttributes() } returns attributesBuilder.build() + every { attributes } returns attributesBuilder.build() every { observedTimestampEpochNanos } returns timestamp } }