Skip to content

Commit

Permalink
Merge pull request #1941 from DataDog/release/2.14.0
Browse files Browse the repository at this point in the history
Release `2.14.0`
  • Loading branch information
maxep authored Jul 4, 2024
2 parents a1bcf3d + 65edecc commit 312e7c2
Show file tree
Hide file tree
Showing 326 changed files with 6,571 additions and 2,793 deletions.
4 changes: 0 additions & 4 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,4 @@ A brief description of implementation details of this PR.
- [ ] Add CHANGELOG entry for user facing changes

### Custom CI job configuration (optional)
- [ ] Run unit tests for Core, RUM, Trace, Logs, CR and WVT
- [ ] Run unit tests for Session Replay
- [ ] Run integration tests
- [ ] Run smoke tests
- [ ] Run tests for `tools/`
227 changes: 162 additions & 65 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,86 +1,183 @@
stages:
- info
- pre
- lint
- test
- ui-test
- smoke-test

ENV info:
stage: info
variables:
MAIN_BRANCH: "master"
DEVELOP_BRANCH: "develop"

default:
tags:
- mac-ventura-preview
allow_failure: true # do not block GH PRs
- macos:sonoma
- specific:true

# ┌───────────────┐
# │ Utility jobs: │
# └───────────────┘

# Trigger jobs on 'develop' and 'master' branches
.run:when-develop-or-master:
rules:
- if: '$CI_COMMIT_BRANCH == $DEVELOP_BRANCH || $CI_COMMIT_BRANCH == $MAIN_BRANCH'
when: always

# Trigger jobs on SDK code changes, comparing against 'develop' branch
.run:if-sdk-modified:
rules:
- changes:
paths:
- "Datadog*/**/*"
- "IntegrationTests/**/*"
- "TestUtilities/**/*"
- "*" # match any file in the root directory
compare_to: 'develop' # cannot use variable due to: https://gitlab.com/gitlab-org/gitlab/-/issues/369916

# Trigger jobs on changes in `tools/*`, comparing against 'develop' branch
.run:if-tools-modified:
rules:
- changes:
paths:
- "tools/**/*"
- "Makefile"
- ".gitlab-ci.yml"
compare_to: 'develop'

ENV check:
stage: pre
script:
- system_profiler SPSoftwareDataType # system info
- xcodebuild -version
- xcode-select -p # default Xcode
- ls /Applications/ | grep Xcode # other Xcodes
- xcodebuild -workspace "Datadog.xcworkspace" -scheme "DatadogCore iOS" -showdestinations -quiet # installed iOS destinations
- xcodebuild -workspace "Datadog.xcworkspace" -scheme "DatadogCore tvOS" -showdestinations -quiet # installed tvOS destinations
- xcbeautify --version
- swiftlint --version
- carthage version
- gh --version
- brew -v
- bundler --version
- python3 -V
- make env-check

# ┌──────────────────────────┐
# │ SDK changes integration: │
# └──────────────────────────┘

Lint:
stage: lint
tags:
- mac-ventura-preview
allow_failure: true # do not block GH PRs
rules:
- !reference [.run:when-develop-or-master, rules]
- !reference [.run:if-sdk-modified, rules]
script:
- ./tools/lint/run-linter.sh
- ./tools/license/check-license.sh
- make clean repo-setup ENV=ci
- make lint license-check
- make rum-models-verify sr-models-verify

SDK unit tests (iOS):
Unit Tests (iOS):
stage: test
tags:
- mac-ventura-preview
allow_failure: true # do not block GH PRs
rules:
- !reference [.run:when-develop-or-master, rules]
- !reference [.run:if-sdk-modified, rules]
variables:
TEST_WORKSPACE: "Datadog.xcworkspace"
TEST_DESTINATION: "platform=iOS Simulator,name=iPhone 15 Pro Max,OS=17.0.1"
XCODE: "15.3.0"
OS: "17.4"
PLATFORM: "iOS Simulator"
DEVICE: "iPhone 15 Pro"
script:
- make dependencies-gitlab
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogCore iOS" -only-testing:"DatadogCoreTests iOS" test | xcbeautify
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogCore iOS" -only-testing:"DatadogInternalTests iOS" test | xcbeautify
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogCore iOS" -only-testing:"DatadogLogsTests iOS" test | xcbeautify
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogCore iOS" -only-testing:"DatadogTraceTests iOS" test | xcbeautify
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogCore iOS" -only-testing:"DatadogRUMTests iOS" test | xcbeautify
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogCore iOS" -only-testing:"DatadogWebViewTrackingTests iOS" test | xcbeautify
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogSessionReplay iOS" test | xcbeautify
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogCrashReporting iOS" test | xcbeautify

SDK unit tests (tvOS):
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --os "$OS" # temporary, waiting for AMI
- make clean repo-setup ENV=ci
- make test-ios-all OS="$OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE"

Unit Tests (tvOS):
stage: test
tags:
- mac-ventura-preview
allow_failure: true # do not block GH PRs
rules:
- !reference [.run:when-develop-or-master, rules]
- !reference [.run:if-sdk-modified, rules]
variables:
XCODE: "15.3.0"
OS: "17.4"
PLATFORM: "tvOS Simulator"
DEVICE: "Apple TV"
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --tvOS --os "$OS" # temporary, waiting for AMI
- make clean repo-setup ENV=ci
- make test-tvos-all OS="$OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE"

UI Tests:
stage: ui-test
rules:
- !reference [.run:when-develop-or-master, rules]
- !reference [.run:if-sdk-modified, rules]
variables:
TEST_WORKSPACE: "Datadog.xcworkspace"
TEST_DESTINATION: "platform=tvOS Simulator,name=Apple TV,OS=17.0"
XCODE: "15.3.0"
OS: "17.4"
PLATFORM: "iOS Simulator"
DEVICE: "iPhone 15 Pro"
parallel:
matrix:
- TEST_PLAN:
- Default
- RUM
- CrashReporting
- NetworkInstrumentation
script:
- make dependencies-gitlab
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogCore tvOS" -only-testing:"DatadogCoreTests tvOS" test | xcbeautify
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogCore tvOS" -only-testing:"DatadogInternalTests tvOS" test | xcbeautify
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogCore tvOS" -only-testing:"DatadogLogsTests tvOS" test | xcbeautify
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogCore tvOS" -only-testing:"DatadogTraceTests tvOS" test | xcbeautify
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogCore tvOS" -only-testing:"DatadogRUMTests tvOS" test | xcbeautify
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "DatadogCrashReporting tvOS" test | xcbeautify

SDK integration tests (iOS):
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --os "$OS" # temporary, waiting for AMI
- make clean repo-setup ENV=ci
- make ui-test TEST_PLAN="$TEST_PLAN" OS="$OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE"

Tools Tests:
stage: test
rules:
- !reference [.run:when-develop-or-master, rules]
- !reference [.run:if-tools-modified, rules]
script:
- make clean repo-setup ENV=ci
- make tools-test

Smoke Tests (iOS):
stage: smoke-test
tags:
- macos:ventura
- specific:true
variables:
XCODE: "15.2.0"
OS: "17.2"
PLATFORM: "iOS Simulator"
DEVICE: "iPhone 15 Pro"
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --os "$OS" # temporary, waiting for AMI
- make clean repo-setup ENV=ci
- make spm-build-ios
- make smoke-test-ios-all OS="$OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE"

Smoke Tests (tvOS):
stage: smoke-test
tags:
- macos:ventura
- specific:true
variables:
XCODE: "15.2.0"
OS: "17.2"
PLATFORM: "tvOS Simulator"
DEVICE: "Apple TV"
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --tvOS --os "$OS" # temporary, waiting for AMI
- make clean repo-setup ENV=ci
- make spm-build-tvos
- make smoke-test-tvos-all OS="$OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE"

Smoke Tests (visionOS):
stage: smoke-test
tags:
- macos:ventura
- specific:true
variables:
XCODE: "15.2.0"
OS: "1.0"
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --visionOS --os "$OS" # temporary, waiting for AMI
- make clean repo-setup ENV=ci
- make spm-build-visionos

Smoke Tests (macOS):
stage: smoke-test
tags:
- mac-ventura-preview
allow_failure: true # do not block GH PRs
- macos:ventura
- specific:true
variables:
TEST_WORKSPACE: "IntegrationTests/IntegrationTests.xcworkspace"
TEST_DESTINATION: "platform=iOS Simulator,name=iPhone 15 Pro Max,OS=17.0.1"
XCODE: "15.2.0"
script:
- make dependencies-gitlab
- make prepare-integration-tests
# Before running crash reporting tests, disable Apple Crash Reporter so it doesn't capture the crash causing tests hang on "<app> quit unexpectedly" prompt:
- launchctl unload -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
- ./tools/config/generate-http-server-mock-config.sh
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "IntegrationScenarios" -testPlan DatadogIntegrationTests test | xcbeautify
- xcodebuild -workspace "$TEST_WORKSPACE" -destination "$TEST_DESTINATION" -scheme "IntegrationScenarios" -testPlan DatadogCrashReportingIntegrationTests test | xcbeautify
- ./tools/runner-setup.sh --xcode "$XCODE" # temporary, waiting for AMI
- make clean repo-setup ENV=ci
- make spm-build-macos
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Unreleased

# 2.14.0 / 04-07-2024

- [IMPROVEMENT] Use `#fileID` over `#filePath` as the default argument in errors. See [#1938][]
- [FEATURE] Add support for Watchdog Terminations tracking in RUM. See [#1917][] [#1911][] [#1912][] [#1889][]
- [IMPROVEMENT] Tabbar Icon Default Tint Color in Session Replay. See [#1906][]
- [IMPROVEMENT] Improve Nav Bar Support in Session Replay. See [#1916][]
- [IMPROVEMENT] Record Activity Indicator in Session Replay. See [#1934][]
- [IMPROVEMENT] Allow disabling app hang monitoring in ObjC API. See [#1908][]
- [IMPROVEMENT] Update RUM and Telemetry models with KMP source. See [#1925][]

# 2.11.1 / 01-07-2024

- [FIX] Fix compilation issues on Xcode 16 beta. See [#1898][]

# 2.13.0 / 13-06-2024

- [IMPROVEMENT] Bump `IPHONEOS_DEPLOYMENT_TARGET` and `TVOS_DEPLOYMENT_TARGET` from 11 to 12. See [#1891][]
Expand Down Expand Up @@ -683,7 +697,17 @@ Release `2.0` introduces breaking changes. Follow the [Migration Guide](MIGRATIO
[#1828]: https://github.com/DataDog/dd-sdk-ios/pull/1828
[#1835]: https://github.com/DataDog/dd-sdk-ios/pull/1835
[#1886]: https://github.com/DataDog/dd-sdk-ios/pull/1886
[#1889]: https://github.com/DataDog/dd-sdk-ios/pull/1889
[#1898]: https://github.com/DataDog/dd-sdk-ios/pull/1898
[#1906]: https://github.com/DataDog/dd-sdk-ios/pull/1906
[#1908]: https://github.com/DataDog/dd-sdk-ios/pull/1908
[#1911]: https://github.com/DataDog/dd-sdk-ios/pull/1911
[#1912]: https://github.com/DataDog/dd-sdk-ios/pull/1912
[#1916]: https://github.com/DataDog/dd-sdk-ios/pull/1916
[#1917]: https://github.com/DataDog/dd-sdk-ios/pull/1917
[#1925]: https://github.com/DataDog/dd-sdk-ios/pull/1925
[#1934]: https://github.com/DataDog/dd-sdk-ios/pull/1934
[#1938]: https://github.com/DataDog/dd-sdk-ios/pull/1938
[@00fa9a]: https://github.com/00FA9A
[@britton-earnin]: https://github.com/Britton-Earnin
[@hengyu]: https://github.com/Hengyu
Expand Down
2 changes: 1 addition & 1 deletion Cartfile
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
github "microsoft/plcrashreporter" ~> 1.11.2
binary "https://raw.githubusercontent.com/DataDog/opentelemetry-swift-packages/main/OpenTelemetryApi.json" ~> 1.6.0
binary "https://raw.githubusercontent.com/DataDog/opentelemetry-swift-packages/main/OpenTelemetryApi.json" == 1.6.0
3 changes: 0 additions & 3 deletions Datadog.xcworkspace/contents.xcworkspacedata

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 312e7c2

Please sign in to comment.