-
Notifications
You must be signed in to change notification settings - Fork 44
/
.gitlab-ci.yml
105 lines (91 loc) · 3.74 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
include:
- 'https://gitlab-templates.ddbuild.io/slack-notifier/v1/template.yml'
# SETUP
variables:
GIT_DEPTH: 5
ANDROID_SDK_VERSION: "commandlinetools-mac-11076708_latest"
EMULATOR_NAME: "android_emulator"
ANDROID_ARCH: "arm64-v8a"
ANDROID_API: "35"
ANDROID_EMULATOR_IMAGE: "system-images;android-$ANDROID_API;google_apis;${ANDROID_ARCH}"
ANDROID_PLATFORM: "platforms;android-$ANDROID_API"
ANDROID_BUILD_TOOLS: "build-tools;$ANDROID_API.0.0"
# KUBERNETES_MEMORY_REQUEST: "8Gi"
# KUBERNETES_MEMORY_LIMIT: "13Gi"
stages:
- test
- notify
.snippets:
install-jdk-17:
- brew install openjdk@17
install-android-sdk:
- curl -sSL -o commandlinetools.zip https://dl.google.com/android/repository/$ANDROID_SDK_VERSION.zip
- rm -rf ~/android_sdk
- rm -rf ~/cmdline-tools
- unzip -q commandlinetools -d ~/
- mkdir -p ~/android_sdk/cmdline-tools/latest
- mv ~/cmdline-tools/* ~/android_sdk/cmdline-tools/latest
- rm ./commandlinetools.zip
- export ANDROID_HOME="$HOME/android_sdk/"
- export ANDROID_SDK_ROOT="$HOME/android_sdk/"
- echo y | ~/android_sdk/cmdline-tools/latest/bin/sdkmanager --install "emulator"
- echo y | ~/android_sdk/cmdline-tools/latest/bin/sdkmanager --install "platform-tools"
- echo y | ~/android_sdk/cmdline-tools/latest/bin/sdkmanager --install "$ANDROID_PLATFORM"
- echo y | ~/android_sdk/cmdline-tools/latest/bin/sdkmanager --install "$ANDROID_BUILD_TOOLS"
- echo y | ~/android_sdk/cmdline-tools/latest/bin/sdkmanager --install "$ANDROID_EMULATOR_IMAGE"
- yes | ~/android_sdk/cmdline-tools/latest/bin/sdkmanager --licenses || true
- echo "no" | ~/android_sdk/cmdline-tools/latest/bin/avdmanager --verbose create avd --force --name "$EMULATOR_NAME" --package "$ANDROID_EMULATOR_IMAGE"
# TESTS
test:lint:
tags: [ "macos:sonoma" ]
stage: test
timeout: 1h
script:
- yarn
- yarn run lint
test:js:
tags: [ "macos:sonoma" ]
stage: test
timeout: 1h
script:
- yarn
- cp jestSetup.js.override node_modules/react-native-gesture-handler/jestSetup.js
- NODE_OPTIONS='-r dd-trace/ci/init' DD_ENV=ci DD_SERVICE=dd-sdk-reactnative yarn test
test:build:
tags: [ "macos:sonoma" ]
stage: test
timeout: 1h
script:
- yarn
- yarn prepare
test:native-android:
tags: [ "macos:sonoma" ]
stage: test
timeout: 1h
script:
- !reference [.snippets, install-android-sdk]
- !reference [.snippets, install-jdk-17]
- /opt/homebrew/opt/openjdk@17/bin/java --version
- echo "org.gradle.java.home=/opt/homebrew/opt/openjdk@17" >> packages/core/android/gradle.properties
- echo "org.gradle.java.home=/opt/homebrew/opt/openjdk@17" >> packages/react-native-session-replay/android/gradle.properties
- echo "org.gradle.java.home=/opt/homebrew/opt/openjdk@17" >> packages/internal-testing-tools/android/gradle.properties
- yarn
- (cd packages/core/android && ./gradlew build)
- (cd packages/react-native-session-replay/android && ./gradlew build)
- (cd packages/internal-testing-tools/android && ./gradlew build)
test:native-ios:
tags: [ "macos:sonoma" ]
stage: test
timeout: 1h
script:
- yarn
- (cd example/ios && pod install --no-repo-update)
- set -o pipefail && xcodebuild -workspace example/ios/DdSdkReactNativeExample.xcworkspace -scheme DatadogSDKReactNative test -destination "platform=iOS Simulator,OS=16.0,name=iPhone 14 Pro Max" | xcbeautify
test:native-ios-sr:
tags: [ "macos:sonoma" ]
stage: test
timeout: 1h
script:
- yarn
- (cd example/ios && pod install --no-repo-update)
- set -o pipefail && xcodebuild -workspace example/ios/DdSdkReactNativeExample.xcworkspace -scheme DatadogSDKReactNativeSessionReplay test -destination "platform=iOS Simulator,OS=16.0,name=iPhone 14 Pro Max" | xcbeautify