Merge branch '2.6.12'

This commit is contained in:
Garth Vander Houwen 2025-07-11 20:34:59 -07:00
commit c22b21326a
3 changed files with 95 additions and 8 deletions

View file

@ -1,5 +1,10 @@
name: Upload dSYM Files
on:
push:
branches: [ main ]
workflow_dispatch:
jobs:
build:
runs-on: macos-latest
@ -8,14 +13,70 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: Generate/Download dSYM Files
uses: ./release.sh
- name: Select Xcode Version
run: sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
- name: Show Xcode Version
run: xcodebuild -version
- name: Setup Environment Variables
env:
DATADOG_CLIENT_TOKEN: ${{ secrets.DATADOG_CLIENT_TOKEN }}
run: |
echo "DATADOG_CLIENT_TOKEN=${DATADOG_CLIENT_TOKEN}" >> $GITHUB_ENV
- name: Build iOS App and Generate dSYMs
env:
DATADOG_CLIENT_TOKEN: ${{ secrets.DATADOG_CLIENT_TOKEN }}
run: |
# Create build directory
mkdir -p ./build/dSYMs
# Build iOS App Archive with dSYMs
xcodebuild \
-workspace Meshtastic.xcworkspace \
-scheme Meshtastic \
-configuration Release \
-destination 'generic/platform=iOS' \
-archivePath ./build/Meshtastic.xcarchive \
DATADOG_CLIENT_TOKEN="${DATADOG_CLIENT_TOKEN}" \
DEBUG_INFORMATION_FORMAT=dwarf-with-dsym \
DWARF_DSYM_FOLDER_PATH=./build/dSYMs \
archive
- name: Extract dSYMs from Archive
run: |
# Find and copy all dSYM files from the archive
find ./build/Meshtastic.xcarchive -name "*.dSYM" -exec cp -R {} ./build/dSYMs/ \;
# List what we found
echo "Found dSYM files:"
find ./build/dSYMs -name "*.dSYM" -type d
- name: Install Datadog CI
run: |
npm install -g @datadog/datadog-ci
- name: Upload dSYMs to Datadog
uses: DataDog/upload-dsyms-github-action@v1
env:
DATADOG_API_KEY: ${{ secrets.DATADOG_API_KEY }}
DATADOG_SITE: datadoghq.com
run: |
# Upload all dSYM files to Datadog
if [ -d "./build/dSYMs" ] && [ "$(find ./build/dSYMs -name "*.dSYM" -type d | wc -l)" -gt 0 ]; then
echo "Uploading dSYM files to Datadog..."
datadog-ci dsyms upload ./build/dSYMs --dry-run=false
else
echo "No dSYM files found to upload"
exit 1
fi
- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
if: always()
with:
api_key: ${{ secrets.DATADOG_API_KEY }}
site: datadoghq.com
dsym_paths: |
path/to/dsyms/folder
path/to/zip/dsyms.zip
name: dsym-files
path: |
./build/dSYMs
./build/Meshtastic.xcarchive
retention-days: 30

View file

@ -13,6 +13,8 @@
102B5EB12E172F41003D191E /* DatadogRUM in Frameworks */ = {isa = PBXBuildFile; productRef = 102B5EB02E172F41003D191E /* DatadogRUM */; };
108FFECB2DD3F43C00BFAA81 /* ShareContactQRDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 108FFECA2DD3F43C00BFAA81 /* ShareContactQRDialog.swift */; };
108FFECD2DD4005600BFAA81 /* NodeInfoEntityToNodeInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 108FFECC2DD4005600BFAA81 /* NodeInfoEntityToNodeInfo.swift */; };
10D109F22E2047D600536CE6 /* DatadogSessionReplay in Frameworks */ = {isa = PBXBuildFile; productRef = 10D109F12E2047D600536CE6 /* DatadogSessionReplay */; };
10D109F42E2047D600536CE6 /* DatadogTrace in Frameworks */ = {isa = PBXBuildFile; productRef = 10D109F32E2047D600536CE6 /* DatadogTrace */; };
231B3F212D087A4C0069A07D /* MetricTableColumn.swift in Sources */ = {isa = PBXBuildFile; fileRef = 231B3F202D087A4C0069A07D /* MetricTableColumn.swift */; };
231B3F222D087A4C0069A07D /* MetricsColumnList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 231B3F1F2D087A4C0069A07D /* MetricsColumnList.swift */; };
231B3F252D087C3C0069A07D /* EnvironmentDefaultColumns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 231B3F242D087C3C0069A07D /* EnvironmentDefaultColumns.swift */; };
@ -599,9 +601,11 @@
102B5EAD2E172F41003D191E /* DatadogCrashReporting in Frameworks */,
25A978BA2C13F8ED0003AAE7 /* MeshtasticProtobufs in Frameworks */,
102B5EAB2E172F41003D191E /* DatadogCore in Frameworks */,
10D109F22E2047D600536CE6 /* DatadogSessionReplay in Frameworks */,
102B5EAF2E172F41003D191E /* DatadogLogs in Frameworks */,
102B5EB12E172F41003D191E /* DatadogRUM in Frameworks */,
DD0D3D222A55CEB10066DB71 /* CocoaMQTT in Frameworks */,
10D109F42E2047D600536CE6 /* DatadogTrace in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1256,6 +1260,8 @@
102B5EAC2E172F41003D191E /* DatadogCrashReporting */,
102B5EAE2E172F41003D191E /* DatadogLogs */,
102B5EB02E172F41003D191E /* DatadogRUM */,
10D109F12E2047D600536CE6 /* DatadogSessionReplay */,
10D109F32E2047D600536CE6 /* DatadogTrace */,
);
productName = MeshtasticClient;
productReference = DDC2E15426CE248E0042C5E4 /* Meshtastic.app */;
@ -2054,6 +2060,16 @@
package = 102B5EA92E172F41003D191E /* XCRemoteSwiftPackageReference "dd-sdk-ios" */;
productName = DatadogRUM;
};
10D109F12E2047D600536CE6 /* DatadogSessionReplay */ = {
isa = XCSwiftPackageProductDependency;
package = 102B5EA92E172F41003D191E /* XCRemoteSwiftPackageReference "dd-sdk-ios" */;
productName = DatadogSessionReplay;
};
10D109F32E2047D600536CE6 /* DatadogTrace */ = {
isa = XCSwiftPackageProductDependency;
package = 102B5EA92E172F41003D191E /* XCRemoteSwiftPackageReference "dd-sdk-ios" */;
productName = DatadogTrace;
};
25A978B92C13F8ED0003AAE7 /* MeshtasticProtobufs */ = {
isa = XCSwiftPackageProductDependency;
productName = MeshtasticProtobufs;

View file

@ -8,6 +8,8 @@ import MeshtasticProtobufs
import DatadogCore
import DatadogCrashReporting
import DatadogRUM
import DatadogTrace
import DatadogLogs
@main
struct MeshtasticAppleApp: App {
@ -44,6 +46,14 @@ struct MeshtasticAppleApp: App {
trackingConsent: UserDefaults.usageDataAndCrashReporting ? .granted : .notGranted,
)
DatadogCrashReporting.CrashReporting.enable()
Logs.enable()
Trace.enable(
with: Trace.Configuration(
sampleRate: 100, networkInfoEnabled: true // 100% sampling for development/testing, reduce for production
)
)
RUM.enable(
with: RUM.Configuration(