mirror of
https://github.com/RevenueCat/purchases-ios
synced 2026-11-09 22:35:56 +05:45
* other: move PurchaseTester to Projects Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * other(ci): add a PurchaseTester smoke build with Tuist Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * other: move rc-maestro to Projects Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * other: rename rc-maestro to AutomatedSDKTestsApp Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
65 lines
2.4 KiB
Swift
65 lines
2.4 KiB
Swift
import Foundation
|
|
import ProjectDescription
|
|
import ProjectDescriptionHelpers
|
|
|
|
var projects: [Path] = [
|
|
"./Examples/MagicWeather/",
|
|
"./Examples/MagicWeatherSwiftUI/",
|
|
"./Examples/testCustomEntitlementsComputation/",
|
|
"./Examples/SampleCat/",
|
|
"./Projects/PurchaseTester",
|
|
"./Projects/AutomatedSDKTestsApp",
|
|
"./Projects/PaywallsTester",
|
|
"./Projects/APITesters",
|
|
"./Projects/PaywallValidationTester",
|
|
"./Projects/PaywallFixtures",
|
|
"./Projects/BinarySizeTest",
|
|
"./Projects/RCTTester"
|
|
]
|
|
|
|
// These projects depend on external packages (Nimble, SnapshotTesting, OHHTTPStubs, GoogleMobileAds).
|
|
// Exclude them when TUIST_INCLUDE_TEST_DEPENDENCIES=false to allow skipping those downloads on CI.
|
|
if Environment.includeTestDependencies {
|
|
projects.append("./Projects/RevenueCatTests")
|
|
projects.append("./Projects/PaywallScreenshotTests")
|
|
projects.append("./Projects/RevenueCatAdMob")
|
|
projects.append("./Projects/AdMobIntegrationSample")
|
|
}
|
|
|
|
// `RevenueCat` and `RevenueCatUI` ARE exposed as SPM library products consumed via
|
|
// `.package(product:)` by the workspace projects. Including the local Tuist projects
|
|
// alongside the SPM-resolved ones would produce two definitions of the same framework name
|
|
// → "Multiple commands produce" build errors. So they stay gated to `localXcodeProject`.
|
|
switch Environment.dependencyMode {
|
|
case .localXcodeProject:
|
|
projects.append("./Projects/RevenueCat")
|
|
projects.append("./Projects/RevenueCatUI")
|
|
case .localSwiftPackage, .remoteSwiftPackage, .remoteXcodeProject:
|
|
break
|
|
}
|
|
|
|
// Only include XCFrameworkInstallationTests when explicitly enabled via environment variable
|
|
// This allows tuist generate to run before xcframeworks are created in CI
|
|
// Set TUIST_INCLUDE_XCFRAMEWORK_INSTALLATION_TESTS=true to include it
|
|
if Environment.includeXCFrameworkInstallationTests {
|
|
projects.append("./Projects/XCFrameworkInstallationTests")
|
|
}
|
|
|
|
var additionalFiles: [FileElement] = [
|
|
.glob(pattern: "Global.xcconfig"),
|
|
.glob(pattern: "Tests/TestPlans/**/*.xctestplan"),
|
|
.glob(pattern: "Tests/RevenueCatUITests/TestPlans/**/*.xctestplan")
|
|
]
|
|
if FileManager.default.fileExists(atPath: "CI.xcconfig") {
|
|
additionalFiles.append(.glob(pattern: "CI.xcconfig"))
|
|
}
|
|
if FileManager.default.fileExists(atPath: "Local.xcconfig") {
|
|
additionalFiles.append(.glob(pattern: "Local.xcconfig"))
|
|
}
|
|
|
|
let workspace = Workspace(
|
|
name: "RevenueCat-Tuist",
|
|
projects: projects,
|
|
additionalFiles: additionalFiles
|
|
)
|