Skip to content

Commit cb602d8

Browse files
authored
Integrate Buildkite Test Analytics (#7097)
2 parents 5e00318 + 53147d9 commit cb602d8

File tree

3 files changed

+64
-0
lines changed

3 files changed

+64
-0
lines changed

WooCommerce.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

WooCommerce/WooCommerce.xcodeproj/project.pbxproj

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,9 @@
663663
3F0CF3142704494A00EF3D71 /* TabNavComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = F997172F23DBCEB200592D8E /* TabNavComponent.swift */; };
664664
3F1CA81D26C3542600228BF2 /* XCUITestHelpers in Frameworks */ = {isa = PBXBuildFile; productRef = 3F1CA81C26C3542600228BF2 /* XCUITestHelpers */; };
665665
3F1CA81F26C3543C00228BF2 /* XCUITestHelpers in Frameworks */ = {isa = PBXBuildFile; productRef = 3F1CA81E26C3543C00228BF2 /* XCUITestHelpers */; };
666+
3F2C8A19285B038800B1A5BB /* BuildkiteTestCollector in Frameworks */ = {isa = PBXBuildFile; productRef = 3F2C8A18285B038800B1A5BB /* BuildkiteTestCollector */; };
667+
3F2C8A1B285B039900B1A5BB /* BuildkiteTestCollector in Frameworks */ = {isa = PBXBuildFile; productRef = 3F2C8A1A285B039900B1A5BB /* BuildkiteTestCollector */; };
668+
3F2C8A1D285B03A400B1A5BB /* BuildkiteTestCollector in Frameworks */ = {isa = PBXBuildFile; productRef = 3F2C8A1C285B03A400B1A5BB /* BuildkiteTestCollector */; };
666669
3F58701F281B947E004F7556 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3F58701E281B947E004F7556 /* Main.storyboard */; };
667670
3F587021281B9494004F7556 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3F587020281B9494004F7556 /* LaunchScreen.storyboard */; };
668671
3F587026281B9C19004F7556 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3F587028281B9C19004F7556 /* InfoPlist.strings */; };
@@ -3561,6 +3564,7 @@
35613564
buildActionMask = 2147483647;
35623565
files = (
35633566
263E38462641FF3400260D3B /* Codegen in Frameworks */,
3567+
3F2C8A19285B038800B1A5BB /* BuildkiteTestCollector in Frameworks */,
35643568
26FB056825F6CB6000A40B26 /* Fakes.framework in Frameworks */,
35653569
B873E8F8E103966D2182EE67 /* Pods_WooCommerceTests.framework in Frameworks */,
35663570
57150E0F24F462C200E81611 /* TestKit in Frameworks */,
@@ -3572,6 +3576,7 @@
35723576
buildActionMask = 2147483647;
35733577
files = (
35743578
3FF314F526FD4F430012E68E /* UITestsFoundation.framework in Frameworks */,
3579+
3F2C8A1D285B03A400B1A5BB /* BuildkiteTestCollector in Frameworks */,
35753580
247CE89C2583402A00F9D9D1 /* Embassy in Frameworks */,
35763581
3F1CA81D26C3542600228BF2 /* XCUITestHelpers in Frameworks */,
35773582
3FF2247326706AA3008FFA87 /* ScreenObject in Frameworks */,
@@ -3583,6 +3588,7 @@
35833588
buildActionMask = 2147483647;
35843589
files = (
35853590
3FF314F626FD4F490012E68E /* UITestsFoundation.framework in Frameworks */,
3591+
3F2C8A1B285B039900B1A5BB /* BuildkiteTestCollector in Frameworks */,
35863592
24C5AC7625A53021008FD769 /* Embassy in Frameworks */,
35873593
3F1CA81F26C3543C00228BF2 /* XCUITestHelpers in Frameworks */,
35883594
3FF2248A267073AE008FFA87 /* ScreenObject in Frameworks */,
@@ -8226,6 +8232,7 @@
82268232
packageProductDependencies = (
82278233
57150E0E24F462C200E81611 /* TestKit */,
82288234
263E38452641FF3400260D3B /* Codegen */,
8235+
3F2C8A18285B038800B1A5BB /* BuildkiteTestCollector */,
82298236
);
82308237
productName = WooCommerceTests;
82318238
productReference = B56DB3DD2049BFAA00D4AA8E /* WooCommerceTests.xctest */;
@@ -8249,6 +8256,7 @@
82498256
packageProductDependencies = (
82508257
3FF2247226706AA3008FFA87 /* ScreenObject */,
82518258
3F1CA81C26C3542600228BF2 /* XCUITestHelpers */,
8259+
3F2C8A1C285B03A400B1A5BB /* BuildkiteTestCollector */,
82528260
);
82538261
productName = WooCommerceUITests;
82548262
productReference = CCDC49CA23FFFFF4003166BA /* WooCommerceUITests.xctest */;
@@ -8273,6 +8281,7 @@
82738281
247CE89B2583402A00F9D9D1 /* Embassy */,
82748282
3FF22489267073AE008FFA87 /* ScreenObject */,
82758283
3F1CA81E26C3543C00228BF2 /* XCUITestHelpers */,
8284+
3F2C8A1A285B039900B1A5BB /* BuildkiteTestCollector */,
82768285
);
82778286
productName = WooCommerceScreenshots;
82788287
productReference = F997170223DBB97500592D8E /* WooCommerceScreenshots.xctest */;
@@ -8365,6 +8374,7 @@
83658374
174CA86827D90A6200126524 /* XCRemoteSwiftPackageReference "AutomatticAbout-swift" */,
83668375
3FFC5EAA2851942F00563C48 /* XCRemoteSwiftPackageReference "Charts" */,
83678376
4598297F28574688003A9AFE /* XCRemoteSwiftPackageReference "Inject" */,
8377+
3F2C8A17285B038800B1A5BB /* XCRemoteSwiftPackageReference "test-collector-swift" */,
83688378
);
83698379
productRefGroup = B56DB3C72049BFAA00D4AA8E /* Products */;
83708380
projectDirPath = "";
@@ -11018,6 +11028,14 @@
1101811028
minimumVersion = 0.3.0;
1101911029
};
1102011030
};
11031+
3F2C8A17285B038800B1A5BB /* XCRemoteSwiftPackageReference "test-collector-swift" */ = {
11032+
isa = XCRemoteSwiftPackageReference;
11033+
repositoryURL = "https://github.com/buildkite/test-collector-swift";
11034+
requirement = {
11035+
kind = upToNextMajorVersion;
11036+
minimumVersion = 0.1.1;
11037+
};
11038+
};
1102111039
3FF2247126706AA3008FFA87 /* XCRemoteSwiftPackageReference "ScreenObject" */ = {
1102211040
isa = XCRemoteSwiftPackageReference;
1102311041
repositoryURL = "https://github.com/Automattic/ScreenObject";
@@ -11081,6 +11099,21 @@
1108111099
package = 3F1CA81B26C3542600228BF2 /* XCRemoteSwiftPackageReference "XCUITestHelpers" */;
1108211100
productName = XCUITestHelpers;
1108311101
};
11102+
3F2C8A18285B038800B1A5BB /* BuildkiteTestCollector */ = {
11103+
isa = XCSwiftPackageProductDependency;
11104+
package = 3F2C8A17285B038800B1A5BB /* XCRemoteSwiftPackageReference "test-collector-swift" */;
11105+
productName = BuildkiteTestCollector;
11106+
};
11107+
3F2C8A1A285B039900B1A5BB /* BuildkiteTestCollector */ = {
11108+
isa = XCSwiftPackageProductDependency;
11109+
package = 3F2C8A17285B038800B1A5BB /* XCRemoteSwiftPackageReference "test-collector-swift" */;
11110+
productName = BuildkiteTestCollector;
11111+
};
11112+
3F2C8A1C285B03A400B1A5BB /* BuildkiteTestCollector */ = {
11113+
isa = XCSwiftPackageProductDependency;
11114+
package = 3F2C8A17285B038800B1A5BB /* XCRemoteSwiftPackageReference "test-collector-swift" */;
11115+
productName = BuildkiteTestCollector;
11116+
};
1108411117
3FF2247226706AA3008FFA87 /* ScreenObject */ = {
1108511118
isa = XCSwiftPackageProductDependency;
1108611119
package = 3FF2247126706AA3008FFA87 /* XCRemoteSwiftPackageReference "ScreenObject" */;

fastlane/Fastfile

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,6 +1042,11 @@ lane :test_without_building do |options|
10421042
e.include?(options[:name])
10431043
end.first
10441044

1045+
# FIXME: I do realize the variable is called "test plan path" but we're
1046+
# actually dealing with an `xctestrun`. I'll rename them all once established
1047+
# this approach works
1048+
add_buildkite_analytics_token(xctestrun_path: testPlanPath)
1049+
10451050
UI.user_error!('Unable to find .xctestrun file') unless !testPlanPath.nil? && File.exist?((testPlanPath))
10461051

10471052
run_tests(
@@ -1101,3 +1106,20 @@ def trigger_buildkite_release_build(branch:, beta:)
11011106
pipeline_file: 'release-builds.yml'
11021107
)
11031108
end
1109+
1110+
def add_buildkite_analytics_token(xctestrun_path:)
1111+
require 'plist'
1112+
1113+
token_key = 'BUILDKITE_ANALYTICS_TOKEN'
1114+
token = ENV[token_key]
1115+
return if token.nil?
1116+
1117+
xctestrun = Plist.parse_xml(xctestrun_path)
1118+
xctestrun['TestConfigurations'].each do |configuration|
1119+
configuration['TestTargets'].each do |target|
1120+
target['EnvironmentVariables'][token_key] = token
1121+
end
1122+
end
1123+
1124+
File.write(xctestrun_path, Plist::Emit.dump(xctestrun))
1125+
end

0 commit comments

Comments
 (0)