ios/project-bwk.yml

317 lines
8.9 KiB
YAML

name: BitwardenKit
fileGroups:
- Configs
configs:
Debug: debug
Release: release
include:
- path: project-common.yml
settings:
MARKETING_VERSION: 2024.6.0 # Bump this for a new version update.
CURRENT_PROJECT_VERSION: 1
packages:
SwiftUIIntrospect:
url: https://github.com/siteline/SwiftUI-Introspect
exactVersion: 1.3.0
schemes:
AuthenticatorBridgeKit:
build:
targets:
AuthenticatorBridgeKit: all
AuthenticatorBridgeKitTests: [test]
test:
gatherCoverageData: true
targets:
- AuthenticatorBridgeKitTests
BitwardenKit:
build:
targets:
BitwardenKit: all
BitwardenKitTests: [test]
BitwardenKitSnapshotTests: [test]
BitwardenKitViewInspectorTests: [test]
test:
gatherCoverageData: true
targets:
- BitwardenKitTests
- BitwardenKitSnapshotTests
- BitwardenKitViewInspectorTests
testPlans:
- path: TestPlans/BitwardenKit-Default.xctestplan
defaultPlan: true
- path: TestPlans/BitwardenKit-Unit.xctestplan
- path: TestPlans/BitwardenKit-Snapshot.xctestplan
- path: TestPlans/BitwardenKit-ViewInspector.xctestplan
BitwardenResources:
build:
targets:
BitwardenResources: all
Networking:
build:
targets:
Networking: all
NetworkingTests: [test]
test:
gatherCoverageData: true
targets:
- NetworkingTests
targets:
AuthenticatorBridgeKit:
type: framework
platform: iOS
configFiles:
Debug: Configs/AuthenticatorBridgeKit.xcconfig
Release: Configs/AuthenticatorBridgeKit.xcconfig
settings:
base:
APPLICATION_EXTENSION_API_ONLY: true
INFOPLIST_FILE: AuthenticatorBridgeKit/Info.plist
SWIFT_STRICT_CONCURRENCY: complete
sources:
- path: AuthenticatorBridgeKit
excludes:
- "**/Fixtures/*"
- "**/Mocks/*"
- "**/Tests/*"
- "**/*Tests.*"
- "**/TestHelpers/*"
dependencies:
- target: BitwardenKit
AuthenticatorBridgeKitTests:
type: bundle.unit-test
platform: iOS
settings:
base:
INFOPLIST_FILE: AuthenticatorBridgeKit/Tests/TestHelpers/Support/Info.plist
SWIFT_STRICT_CONCURRENCY: complete
sources:
- path: AuthenticatorBridgeKit
includes:
- "**/Tests/*"
- "**/*Tests.*"
- "**/TestHelpers/*"
dependencies:
- target: AuthenticatorBridgeKit
- target: AuthenticatorBridgeKitMocks
- target: BitwardenKit
- target: BitwardenKitMocks
- target: TestHelpers
randomExecutionOrder: true
AuthenticatorBridgeKitMocks:
type: framework
platform: iOS
settings:
base:
ENABLE_TESTING_SEARCH_PATHS: YES
INFOPLIST_FILE: AuthenticatorBridgeKit/MocksInfo.plist
SWIFT_STRICT_CONCURRENCY: complete
sources:
- path: AuthenticatorBridgeKit
includes:
- "**/Fixtures/*"
- "**/Mocks/*"
dependencies:
- target: AuthenticatorBridgeKit
- target: BitwardenKit
- target: TestHelpers
BitwardenKit:
type: framework
platform: iOS
configFiles:
Debug: Configs/BitwardenKit-Debug.xcconfig
Release: Configs/BitwardenKit-Release.xcconfig
settings:
base:
APPLICATION_EXTENSION_API_ONLY: true
INFOPLIST_FILE: BitwardenKit/Info.plist
sources:
- path: BitwardenKit
excludes:
- "**/Fixtures/*"
- "**/Mocks/*"
- "**/*Tests.*"
- "**/TestHelpers/*"
- "**/__Snapshots__/*"
- "**/Sourcery/Generated/*"
- "**/sourcery.yml"
- path: BitwardenKit
includes:
- "**/__Snapshots__/*"
- "**/GoogleService-Info.*.plist"
- "**/sourcery.yml"
buildPhase: none
dependencies:
- package: SwiftUIIntrospect
- target: BitwardenResources
- target: Networking
preBuildScripts:
- name: Sourcery
script: |
if [[ ! "$PATH" =~ "/opt/homebrew/bin" ]]; then
PATH="/opt/homebrew/bin:$PATH"
fi
mint run sourcery --config BitwardenKit/Sourcery/sourcery.yml
basedOnDependencyAnalysis: false
outputFiles:
- $(SRCROOT)/BitwardenKit/Sourcery/Generated/AutoMockable.generated.swift
BitwardenKitMocks:
type: framework
platform: iOS
settings:
base:
ENABLE_TESTING_SEARCH_PATHS: YES
INFOPLIST_FILE: BitwardenKit/Application/Mocks/Support/Info.plist
sources:
- path: BitwardenKit
includes:
- "**/Fixtures/*"
- "**/Mocks/*"
- path: BitwardenKit/Sourcery/Generated/AutoMockable.generated.swift
optional: true
dependencies:
- target: BitwardenKit
- target: TestHelpers
BitwardenKitTests:
type: bundle.unit-test
platform: iOS
settings:
base:
INFOPLIST_FILE: BitwardenKit/Application/TestHelpers/Support/Info.plist
sources:
- path: BitwardenKit
includes:
- "**/*Tests.*"
- "**/TestHelpers/*"
excludes:
- "**/*SnapshotTests.*"
- "**/*ViewInspectorTests.*"
dependencies:
- target: AuthenticatorBridgeKitMocks
- target: BitwardenKit
- target: BitwardenKitMocks
- target: TestHelpers
- package: SnapshotTesting
product: InlineSnapshotTesting
randomExecutionOrder: true
BitwardenKitSnapshotTests:
type: bundle.unit-test
platform: iOS
settings:
base:
INFOPLIST_FILE: BitwardenKit/Application/TestHelpers/Support/Info.plist
sources:
- path: BitwardenKit
includes:
- "**/*SnapshotTests.*"
- "**/TestHelpers/*"
dependencies:
- target: AuthenticatorBridgeKitMocks
- target: BitwardenKit
- target: BitwardenKitMocks
- target: TestHelpers
- package: SnapshotTesting
randomExecutionOrder: true
BitwardenKitViewInspectorTests:
type: bundle.unit-test
platform: iOS
settings:
base:
INFOPLIST_FILE: BitwardenKit/Application/TestHelpers/Support/Info.plist
sources:
- path: BitwardenKit
includes:
- "**/*ViewInspectorTests.*"
- "**/TestHelpers/*"
dependencies:
- target: AuthenticatorBridgeKitMocks
- target: BitwardenKit
- target: BitwardenKitMocks
- target: TestHelpers
- target: ViewInspectorTestHelpers
- package: ViewInspector
randomExecutionOrder: true
BitwardenResources:
type: framework
platform: iOS
configFiles:
Debug: Configs/BitwardenResources-Debug.xcconfig
Release: Configs/BitwardenResources-Release.xcconfig
settings:
base:
APPLICATION_EXTENSION_API_ONLY: true
INFOPLIST_FILE: BitwardenResources/Info.plist
sources:
- path: BitwardenResources
- path: BitwardenResources/Generated/Fonts.swift
optional: true
- path: BitwardenResources/Generated/Localizations.swift
optional: true
- path: BitwardenResources/Generated/SharedAssets.swift
optional: true
preBuildScripts:
- name: SwiftGen
script: |
if [[ ! "$PATH" =~ "/opt/homebrew/bin" ]]; then
PATH="/opt/homebrew/bin:$PATH"
fi
mint run swiftgen config run --config "swiftgen-bwr.yml"
basedOnDependencyAnalysis: false
outputFiles:
- $(SRCROOT)/BitwardenResources/Generated/Fonts.swift
- $(SRCROOT)/BitwardenResources/Generated/Localizations.swift
- $(SRCROOT)/BitwardenResources/Generated/SharedAssets.swift
Networking:
type: framework
platform: iOS
configFiles:
Debug: Configs/Networking.xcconfig
Release: Configs/Networking.xcconfig
settings:
base:
APPLICATION_EXTENSION_API_ONLY: true
INFOPLIST_FILE: Networking/Info.plist
SWIFT_STRICT_CONCURRENCY: complete
sources:
- path: Networking
excludes:
- "**/Tests/*"
NetworkingTests:
type: bundle.unit-test
platform: iOS
settings:
base:
INFOPLIST_FILE: Networking/Tests/NetworkingTests/Support/Info.plist
sources:
- path: Networking
includes:
- "**/Tests/*"
dependencies:
- target: Networking
randomExecutionOrder: true
TestHelpers:
type: framework
platform: iOS
settings:
base:
ENABLE_TESTING_SEARCH_PATHS: YES
INFOPLIST_FILE: TestHelpers/Info.plist
sources:
- path: TestHelpers
excludes:
- "**/Info.plist"
dependencies:
- target: Networking
- package: SnapshotTesting
ViewInspectorTestHelpers:
type: framework
platform: iOS
settings:
base:
ENABLE_TESTING_SEARCH_PATHS: YES
GENERATE_INFOPLIST_FILE: YES
sources:
- path: ViewInspectorTestHelpers
dependencies:
- package: ViewInspector