Skip to content

Commit da4526d

Browse files
authored
Merge pull request #497 from nimblehq/chore/491-migrate-set-up-firebase-test-swift-command
[#491] Migrate `set_up_test_firebase.sh` to Swift command
2 parents 1385fce + 5020d93 commit da4526d

File tree

7 files changed

+50
-18
lines changed

7 files changed

+50
-18
lines changed

.github/workflows/test_upload_build_to_firebase.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
run: sh make.sh --bundle-id co.nimblehq.ios.templates --bundle-id-staging co.nimblehq.ios.templates.staging --project-name TemplateApp --interface UIKit
5151

5252
- name: Start Setup Script for Template App Firebase Upload
53-
run: sh set_up_test_firebase.sh
53+
run: cat Scripts/Swift/SetUpTestFirebase.swift Scripts/Swift/Extensions/FileManager+Utils.swift | swift -
5454
env:
5555
MATCH_REPO: ${{ secrets.MATCH_REPO }}
5656
STAGING_FIREBASE_APP_ID: ${{ secrets.STAGING_FIREBASE_APP_ID }}

Dangerfile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# frozen_string_literal: true
22

3-
require './fastlane/Constants/Constants'
4-
53
# Warn when there is a big PR
64
warn("This pull request is quite big (#{git.lines_of_code} lines changed), please consider splitting it into multiple pull requests.") if git.lines_of_code > 500
75

Scripts/Swift/Extensions/FileManager+Utils.swift

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,35 @@ extension FileManager {
4242
print("Error \(error)")
4343
}
4444
}
45+
46+
func replaceAllOccurrences(of original: String, to replacing: String) {
47+
let files = try? allFiles(in: currentDirectoryPath)
48+
guard let files else { return print("Cannot find any files in current directory") }
49+
for file in files {
50+
do {
51+
let text = try String(contentsOf: file, encoding: .utf8)
52+
let modifiedText = text.replacingOccurrences(of: original, with: replacing)
53+
try modifiedText.write(to: file, atomically: true, encoding: .utf8)
54+
} catch {
55+
print(error.localizedDescription)
56+
}
57+
}
58+
}
59+
60+
private func allFiles(in directory: String) throws -> [URL] {
61+
let url = URL(fileURLWithPath: directory)
62+
var files = [URL]()
63+
if let enumerator = enumerator(
64+
at: url,
65+
includingPropertiesForKeys: [.isRegularFileKey],
66+
options: [.skipsHiddenFiles, .skipsPackageDescendants]
67+
) {
68+
for case let fileURL as URL in enumerator {
69+
let fileAttributes = try? fileURL.resourceValues(forKeys:[.isRegularFileKey])
70+
guard fileAttributes?.isRegularFile ?? false else { continue }
71+
files.append(fileURL)
72+
}
73+
}
74+
return files
75+
}
4576
}

Scripts/Swift/SetUpCICDService.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ case .codemagic:
4343
print("Setting template for CodeMagic")
4444
fileManager.removeItems(in: "bitrise.yml")
4545
fileManager.removeItems(in: ".github/workflows")
46-
case .later:
46+
case .later, .none:
4747
print("You can manually setup the template later.")
4848
}
4949

Scripts/Swift/SetUpTestFirebase.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
let teamIdPlaceholder = "<#teamId#>"
2+
let stagingFirebaseAppIdPlaceholder = "<#stagingFirebaseAppId#>"
3+
let firebaseTesterGroupsPlaceholder = "<#group1#>, <#group2#>"
4+
let matchRepoPlaceholder = "git@github.com:{organization}/{repo}.git"
5+
6+
let envMatchRepo = ProcessInfo.processInfo.environment["MATCH_REPO"] ?? ""
7+
let envStagingFirebaseAppId = ProcessInfo.processInfo.environment["STAGING_FIREBASE_APP_ID"] ?? ""
8+
let envTeamId = ProcessInfo.processInfo.environment["TEAM_ID"] ?? ""
9+
let firebaseTesterGroup = "nimble"
10+
11+
let fileManager = FileManager.default
12+
13+
fileManager.replaceAllOccurrences(of: teamIdPlaceholder, to: envTeamId)
14+
fileManager.replaceAllOccurrences(of: stagingFirebaseAppIdPlaceholder, to: envStagingFirebaseAppId)
15+
fileManager.replaceAllOccurrences(of: firebaseTesterGroupsPlaceholder, to: firebaseTesterGroup)
16+
fileManager.replaceAllOccurrences(of: matchRepoPlaceholder, to: envMatchRepo)

make.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,13 +215,12 @@ git reset
215215

216216
if [[ -z "${CI}" ]]; then
217217
rm -rf fastlane/Tests
218-
rm -f set_up_test_firebase.sh
219218
rm -f set_up_test_testflight.sh
220219
cat Scripts/Swift/SetUpCICDService.swift Scripts/Swift/Extensions/FileManager+Utils.swift Scripts/Swift/Helpers/SafeShell.swift > t.swift && swift t.swift && rm -rf 't.swift'
221220
cat Scripts/Swift/SetUpDeliveryConstants.swift Scripts/Swift/Extensions/FileManager+Utils.swift Scripts/Swift/Helpers/SafeShell.swift > t.swift && swift t.swift && rm -rf 't.swift'
221+
rm -rf Scripts
222222
fi
223223

224-
rm -rf Scripts
225224

226225
echo "✅ Completed"
227226

set_up_test_firebase.sh

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)