diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 493a5e4b..8196efa5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: swift-actions/setup-swift@v2 + - uses: swift-actions/setup-swift@d4537ff835c9778c934e48f78639e270edd5839e # v2.2.0 with: swift-version: ${{ matrix.swift }} diff --git a/.github/workflows/danger-swift.yml b/.github/workflows/danger-swift.yml index 25af997e..381c9014 100644 --- a/.github/workflows/danger-swift.yml +++ b/.github/workflows/danger-swift.yml @@ -10,7 +10,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Danger - uses: danger/swift@3.20.2 + uses: danger/swift@bb4faf2c5613960b3de954c631cedd4dc63c3fef # v3.21.1 with: args: --failOnErrors --no-publish-check env: diff --git a/.github/workflows/swiftlint.yml b/.github/workflows/swiftlint.yml index dcda1107..2508cf5f 100644 --- a/.github/workflows/swiftlint.yml +++ b/.github/workflows/swiftlint.yml @@ -11,9 +11,12 @@ on: jobs: SwiftLint: runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write steps: - uses: actions/checkout@v3 - name: GitHub Action for SwiftLint - uses: stanfordbdhg/action-swiftlint@v4 + uses: stanfordbdhg/action-swiftlint@f6ee119765c4b81b667fa84b1e9ee77ca864f622 # v4.1.1 with: args: --strict --reporter github-actions-logging \ No newline at end of file diff --git a/Sources/VariantsCore/Helpers/Constants.swift b/Sources/VariantsCore/Helpers/Constants.swift index 6ff3840f..baf93062 100644 --- a/Sources/VariantsCore/Helpers/Constants.swift +++ b/Sources/VariantsCore/Helpers/Constants.swift @@ -30,6 +30,10 @@ struct StaticPath { static let variantsFileName = "Variants.swift" } + struct Pod { + static let podFileFile = Path("Podfile") + } + struct Template { static let variantsScriptFileName = "variants-template.gradle" static let fastlaneParametersFileName = "variants_params_template.rb" diff --git a/Tests/VariantsCoreTests/Mocks/MockXCcodeConfigFactory.swift b/Tests/VariantsCoreTests/Mocks/MockXCodeConfigFactory.swift similarity index 96% rename from Tests/VariantsCoreTests/Mocks/MockXCcodeConfigFactory.swift rename to Tests/VariantsCoreTests/Mocks/MockXCodeConfigFactory.swift index 4f3bb08a..b63f47c4 100644 --- a/Tests/VariantsCoreTests/Mocks/MockXCcodeConfigFactory.swift +++ b/Tests/VariantsCoreTests/Mocks/MockXCodeConfigFactory.swift @@ -9,7 +9,7 @@ import Foundation import PathKit @testable import VariantsCore -class MockXCcodeConfigFactory: XCFactory { +class MockXCodeConfigFactory: XCFactory { var writeContentCache: [(content: String, file: Path, force: Bool)] = [] var writeJSONCache: [(encodableObject: Encodable, file: Path)] = [] var createConfigCache: [(variant: iOSVariant, configuration: iOSConfiguration, configPath: Path)] = [] diff --git a/Tests/VariantsCoreTests/iOSProjectTests.swift b/Tests/VariantsCoreTests/iOSProjectTests.swift index b01f5abd..1f6cd177 100644 --- a/Tests/VariantsCoreTests/iOSProjectTests.swift +++ b/Tests/VariantsCoreTests/iOSProjectTests.swift @@ -21,7 +21,7 @@ class iOSProjectTests: XCTestCase { ) func testProject_initialize() { - let xcFactoryMock = MockXCcodeConfigFactory(logLevel: true) + let xcFactoryMock = MockXCodeConfigFactory(logLevel: true) let parametersFactoryMock = MockFastlaneFactory() let project = iOSProject( @@ -38,7 +38,7 @@ class iOSProjectTests: XCTestCase { } func testProject_setup() { - let xcFactoryMock = MockXCcodeConfigFactory(logLevel: true) + let xcFactoryMock = MockXCodeConfigFactory(logLevel: true) let parametersFactoryMock = MockFastlaneFactory() let project = iOSProject( @@ -80,7 +80,7 @@ class iOSProjectTests: XCTestCase { } func testProject_list() { - let xcFactoryMock = MockXCcodeConfigFactory(logLevel: true) + let xcFactoryMock = MockXCodeConfigFactory(logLevel: true) let parametersFactoryMock = MockFastlaneFactory() let project = iOSProject( specHelper: specHelperMock, @@ -99,7 +99,7 @@ class iOSProjectTests: XCTestCase { } func testProject_switch() { - let xcFactoryMock = MockXCcodeConfigFactory(logLevel: true) + let xcFactoryMock = MockXCodeConfigFactory(logLevel: true) let parametersFactoryMock = MockFastlaneFactory() let project = iOSProject( @@ -153,7 +153,7 @@ class iOSProjectTests: XCTestCase { } func testProject_setup_missingiOSConfiguration() { - let xcFactoryMock = MockXCcodeConfigFactory(logLevel: true) + let xcFactoryMock = MockXCodeConfigFactory(logLevel: true) let parametersFactoryMock = MockFastlaneFactory() let project = iOSProject( @@ -176,7 +176,7 @@ class iOSProjectTests: XCTestCase { } func testProject_setup_fail() { - let xcFactoryMock = MockXCcodeConfigFactory(logLevel: true) + let xcFactoryMock = MockXCodeConfigFactory(logLevel: true) let parametersFactoryMock = MockFastlaneFactory() let project = iOSProject( diff --git a/Variants.xcodeproj/project.pbxproj b/Variants.xcodeproj/project.pbxproj index 5693a29f..bf324ddf 100644 --- a/Variants.xcodeproj/project.pbxproj +++ b/Variants.xcodeproj/project.pbxproj @@ -34,6 +34,7 @@ /* Begin PBXBuildFile section */ 2D72CCA82D478A6000B01883 /* iOSTargetExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D72CCA72D478A6000B01883 /* iOSTargetExtensionTests.swift */; }; 2D99DF062820856A004A36E1 /* iOSVariantTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D99DF052820856A004A36E1 /* iOSVariantTests.swift */; }; + 2DA453002D64CDF4001930B2 /* MockXCodeConfigFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DA452FF2D64CDF4001930B2 /* MockXCodeConfigFactory.swift */; }; 2DFF30112D438AEF00F8CF7B /* iOSExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DFF30102D438AEF00F8CF7B /* iOSExtension.swift */; }; 3907EE7026FDF9CE00311EE6 /* XcodeProjFactoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3907EE6F26FDF9CE00311EE6 /* XcodeProjFactoryTests.swift */; }; 3940C5A127074B1A00FEA51D /* LogData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3940C5A027074B1A00FEA51D /* LogData.swift */; }; @@ -106,7 +107,6 @@ 8EDC550C25592F5800A9CDFF /* iOSProjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EDC550B25592F5800A9CDFF /* iOSProjectTests.swift */; }; 8EE24235256BA98C00F66F61 /* iOSSigning.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EE24234256BA98C00F66F61 /* iOSSigning.swift */; }; BEAA71ED255A012900E9D4D9 /* AndroidProjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEAA71EC255A012900E9D4D9 /* AndroidProjectTests.swift */; }; - BEAA720C255E5C3E00E9D4D9 /* MockXCcodeConfigFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEAA720B255E5C3E00E9D4D9 /* MockXCcodeConfigFactory.swift */; }; BEAA7212255E5C4100E9D4D9 /* MockGradleScriptFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEAA71FF255E5BBB00E9D4D9 /* MockGradleScriptFactory.swift */; }; BEAA7219255E5C6C00E9D4D9 /* MockFastlaneFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEAA7218255E5C6C00E9D4D9 /* MockFastlaneFactory.swift */; }; C52A0A5429263483007CE315 /* UserInputTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52A0A5329263483007CE315 /* UserInputTests.swift */; }; @@ -176,6 +176,7 @@ /* Begin PBXFileReference section */ 2D72CCA72D478A6000B01883 /* iOSTargetExtensionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSTargetExtensionTests.swift; sourceTree = ""; }; 2D99DF052820856A004A36E1 /* iOSVariantTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSVariantTests.swift; sourceTree = ""; }; + 2DA452FF2D64CDF4001930B2 /* MockXCodeConfigFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockXCodeConfigFactory.swift; sourceTree = ""; }; 2DFF30102D438AEF00F8CF7B /* iOSExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSExtension.swift; sourceTree = ""; }; 3907EE6F26FDF9CE00311EE6 /* XcodeProjFactoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XcodeProjFactoryTests.swift; sourceTree = ""; }; 3940C5A027074B1A00FEA51D /* LogData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogData.swift; sourceTree = ""; }; @@ -218,7 +219,6 @@ 8EE24234256BA98C00F66F61 /* iOSSigning.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSSigning.swift; sourceTree = ""; }; BEAA71EC255A012900E9D4D9 /* AndroidProjectTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AndroidProjectTests.swift; sourceTree = ""; }; BEAA71FF255E5BBB00E9D4D9 /* MockGradleScriptFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockGradleScriptFactory.swift; sourceTree = ""; }; - BEAA720B255E5C3E00E9D4D9 /* MockXCcodeConfigFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockXCcodeConfigFactory.swift; sourceTree = ""; }; BEAA7218255E5C6C00E9D4D9 /* MockFastlaneFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockFastlaneFactory.swift; sourceTree = ""; }; C52A0A5329263483007CE315 /* UserInputTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInputTests.swift; sourceTree = ""; }; C52A0A5529266B1B007CE315 /* iOSSigningTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSSigningTests.swift; sourceTree = ""; }; @@ -381,8 +381,8 @@ BEAA71FE255E5B8C00E9D4D9 /* Mocks */ = { isa = PBXGroup; children = ( + 2DA452FF2D64CDF4001930B2 /* MockXCodeConfigFactory.swift */, BEAA71FF255E5BBB00E9D4D9 /* MockGradleScriptFactory.swift */, - BEAA720B255E5C3E00E9D4D9 /* MockXCcodeConfigFactory.swift */, BEAA7218255E5C6C00E9D4D9 /* MockFastlaneFactory.swift */, 397811F526F4BCF800643F91 /* MockLogger.swift */, 7C460E7E281C1DDE00BBF15D /* MockVariant.swift */, @@ -860,7 +860,6 @@ 7C460E81281C1E8100BBF15D /* MockProject.swift in Sources */, 8E1B9F3C254AC31A00DD0204 /* InitializerTests.swift in Sources */, BEAA7212255E5C4100E9D4D9 /* MockGradleScriptFactory.swift in Sources */, - BEAA720C255E5C3E00E9D4D9 /* MockXCcodeConfigFactory.swift in Sources */, E39502A9256DB16B00484DCE /* String+WriteTests.swift in Sources */, 397811FB26F4CD3300643F91 /* VerboseLoggerTests.swift in Sources */, 2D99DF062820856A004A36E1 /* iOSVariantTests.swift in Sources */, @@ -880,6 +879,7 @@ 7C460E7F281C1DDE00BBF15D /* MockVariant.swift in Sources */, 8E8A48CA255307B20056F79F /* GradleScriptFactoryTests.swift in Sources */, 8E8A491025543F920056F79F /* SpecHelperTests.swift in Sources */, + 2DA453002D64CDF4001930B2 /* MockXCodeConfigFactory.swift in Sources */, 2D72CCA82D478A6000B01883 /* iOSTargetExtensionTests.swift in Sources */, 7C460E83281C30B900BBF15D /* CommandTests.swift in Sources */, );