Skip to content

Commit 8003c04

Browse files
committed
Automate versioning
1 parent 7416546 commit 8003c04

File tree

8 files changed

+236
-5
lines changed

8 files changed

+236
-5
lines changed

.github/workflows/distribute.yml

+4
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ jobs:
2323
uses: actions/checkout@v2
2424
- name: Configure Xcode
2525
run: sudo xcode-select -s "/Applications/Xcode_13.2.1.app"
26+
- name: Inject version
27+
run: ./Scripts/version
2628
- name: Build
2729
run: swift build
2830
- name: Run tests
@@ -36,6 +38,8 @@ jobs:
3638
uses: actions/checkout@v2
3739
- name: Configure Xcode
3840
run: sudo xcode-select -s "/Applications/Xcode_13.2.1.app"
41+
- name: Inject version
42+
run: ./Scripts/version
3943
- name: Build
4044
run: make build
4145
- name: Upload binary

.github/workflows/unit-tests.yml

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ jobs:
1414
uses: actions/checkout@v2
1515
- name: Configure Xcode
1616
run: sudo xcode-select -s "/Applications/Xcode_13.2.1.app"
17+
- name: Inject version
18+
run: ./Scripts/version
1719
- name: Build
1820
run: swift build
1921
- name: Run tests

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ playground.xcworkspace
6363
/*.xcodeproj
6464
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
6565
.build/
66+
Sources/CLI/Package.swift
6667

6768
### Xcode Patch ###
6869
*.xcodeproj/*
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Scheme
3+
LastUpgradeVersion = "1320"
4+
version = "1.3">
5+
<BuildAction
6+
parallelizeBuildables = "YES"
7+
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "YES"
13+
buildForArchiving = "YES"
14+
buildForAnalyzing = "YES">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "Networking"
18+
BuildableName = "Networking"
19+
BlueprintName = "Networking"
20+
ReferencedContainer = "container:">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
<BuildActionEntry
24+
buildForTesting = "YES"
25+
buildForRunning = "YES"
26+
buildForProfiling = "YES"
27+
buildForArchiving = "YES"
28+
buildForAnalyzing = "YES">
29+
<BuildableReference
30+
BuildableIdentifier = "primary"
31+
BlueprintIdentifier = "StoreAPI"
32+
BuildableName = "StoreAPI"
33+
BlueprintName = "StoreAPI"
34+
ReferencedContainer = "container:">
35+
</BuildableReference>
36+
</BuildActionEntry>
37+
<BuildActionEntry
38+
buildForTesting = "YES"
39+
buildForRunning = "YES"
40+
buildForProfiling = "YES"
41+
buildForArchiving = "YES"
42+
buildForAnalyzing = "YES">
43+
<BuildableReference
44+
BuildableIdentifier = "primary"
45+
BlueprintIdentifier = "ipatool"
46+
BuildableName = "ipatool"
47+
BlueprintName = "ipatool"
48+
ReferencedContainer = "container:">
49+
</BuildableReference>
50+
</BuildActionEntry>
51+
<BuildActionEntry
52+
buildForTesting = "YES"
53+
buildForRunning = "YES"
54+
buildForProfiling = "NO"
55+
buildForArchiving = "NO"
56+
buildForAnalyzing = "YES">
57+
<BuildableReference
58+
BuildableIdentifier = "primary"
59+
BlueprintIdentifier = "NetworkingTests"
60+
BuildableName = "NetworkingTests"
61+
BlueprintName = "NetworkingTests"
62+
ReferencedContainer = "container:">
63+
</BuildableReference>
64+
</BuildActionEntry>
65+
<BuildActionEntry
66+
buildForTesting = "YES"
67+
buildForRunning = "YES"
68+
buildForProfiling = "YES"
69+
buildForArchiving = "YES"
70+
buildForAnalyzing = "YES">
71+
<BuildableReference
72+
BuildableIdentifier = "primary"
73+
BlueprintIdentifier = "CLI"
74+
BuildableName = "CLI"
75+
BlueprintName = "CLI"
76+
ReferencedContainer = "container:">
77+
</BuildableReference>
78+
</BuildActionEntry>
79+
</BuildActionEntries>
80+
</BuildAction>
81+
<TestAction
82+
buildConfiguration = "Debug"
83+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
84+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
85+
shouldUseLaunchSchemeArgsEnv = "YES">
86+
<Testables>
87+
<TestableReference
88+
skipped = "NO">
89+
<BuildableReference
90+
BuildableIdentifier = "primary"
91+
BlueprintIdentifier = "NetworkingTests"
92+
BuildableName = "NetworkingTests"
93+
BlueprintName = "NetworkingTests"
94+
ReferencedContainer = "container:">
95+
</BuildableReference>
96+
</TestableReference>
97+
</Testables>
98+
</TestAction>
99+
<LaunchAction
100+
buildConfiguration = "Debug"
101+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
102+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
103+
launchStyle = "0"
104+
useCustomWorkingDirectory = "NO"
105+
ignoresPersistentStateOnLaunch = "NO"
106+
debugDocumentVersioning = "YES"
107+
debugServiceExtension = "internal"
108+
allowLocationSimulation = "YES">
109+
<MacroExpansion>
110+
<BuildableReference
111+
BuildableIdentifier = "primary"
112+
BlueprintIdentifier = "ipatool"
113+
BuildableName = "ipatool"
114+
BlueprintName = "ipatool"
115+
ReferencedContainer = "container:">
116+
</BuildableReference>
117+
</MacroExpansion>
118+
</LaunchAction>
119+
<ProfileAction
120+
buildConfiguration = "Release"
121+
shouldUseLaunchSchemeArgsEnv = "YES"
122+
savedToolIdentifier = ""
123+
useCustomWorkingDirectory = "NO"
124+
debugDocumentVersioning = "YES">
125+
<MacroExpansion>
126+
<BuildableReference
127+
BuildableIdentifier = "primary"
128+
BlueprintIdentifier = "ipatool"
129+
BuildableName = "ipatool"
130+
BlueprintName = "ipatool"
131+
ReferencedContainer = "container:">
132+
</BuildableReference>
133+
</MacroExpansion>
134+
</ProfileAction>
135+
<AnalyzeAction
136+
buildConfiguration = "Debug">
137+
</AnalyzeAction>
138+
<ArchiveAction
139+
buildConfiguration = "Release"
140+
revealArchiveInOrganizer = "YES">
141+
</ArchiveAction>
142+
</Scheme>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Scheme
3+
LastUpgradeVersion = "1320"
4+
version = "1.3">
5+
<BuildAction
6+
parallelizeBuildables = "YES"
7+
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "YES"
13+
buildForArchiving = "YES"
14+
buildForAnalyzing = "YES">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "StoreAPI"
18+
BuildableName = "StoreAPI"
19+
BlueprintName = "StoreAPI"
20+
ReferencedContainer = "container:">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
</BuildActionEntries>
24+
</BuildAction>
25+
<TestAction
26+
buildConfiguration = "Debug"
27+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29+
shouldUseLaunchSchemeArgsEnv = "YES">
30+
<Testables>
31+
</Testables>
32+
</TestAction>
33+
<LaunchAction
34+
buildConfiguration = "Debug"
35+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
36+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
37+
launchStyle = "0"
38+
useCustomWorkingDirectory = "NO"
39+
ignoresPersistentStateOnLaunch = "NO"
40+
debugDocumentVersioning = "YES"
41+
debugServiceExtension = "internal"
42+
allowLocationSimulation = "YES">
43+
</LaunchAction>
44+
<ProfileAction
45+
buildConfiguration = "Release"
46+
shouldUseLaunchSchemeArgsEnv = "YES"
47+
savedToolIdentifier = ""
48+
useCustomWorkingDirectory = "NO"
49+
debugDocumentVersioning = "YES">
50+
<MacroExpansion>
51+
<BuildableReference
52+
BuildableIdentifier = "primary"
53+
BlueprintIdentifier = "StoreAPI"
54+
BuildableName = "StoreAPI"
55+
BlueprintName = "StoreAPI"
56+
ReferencedContainer = "container:">
57+
</BuildableReference>
58+
</MacroExpansion>
59+
</ProfileAction>
60+
<AnalyzeAction
61+
buildConfiguration = "Debug">
62+
</AnalyzeAction>
63+
<ArchiveAction
64+
buildConfiguration = "Release"
65+
revealArchiveInOrganizer = "YES">
66+
</ArchiveAction>
67+
</Scheme>

Package.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import PackageDescription
44

55
let package = Package(
66
name: "IPATool",
7-
platforms: [.iOS(.v13), .macOS(.v10_15)],
7+
platforms: [.macOS(.v10_15)],
88
products: [
99
.executable(name: "ipatool", targets: ["CLI"]),
1010
.library(name: "StoreAPI", targets: ["StoreAPI"]),

Scripts/version

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash -e
2+
3+
VERSION=$(git describe --abbrev=0 --tags | cut -c 2-)
4+
5+
cat <<EOF >"$PWD/Sources/CLI/Package.swift"
6+
// Automatically generated
7+
8+
enum Package {
9+
static let version = "${VERSION}"
10+
}
11+
EOF
12+
13+
echo "Version ${VERSION}"

Sources/CLI/Commands/IPATool.swift

+6-4
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@ import ArgumentParser
99

1010
struct IPATool: ParsableCommand {
1111
static var configuration: CommandConfiguration {
12-
return .init(commandName: "ipatool",
13-
abstract: "A cli tool for interacting with Apple's ipa files.",
14-
version: "1.0.7",
15-
subcommands: [Download.self, Search.self])
12+
return CommandConfiguration(
13+
commandName: "ipatool",
14+
abstract: "A cli tool for interacting with Apple's ipa files.",
15+
version: Package.version,
16+
subcommands: [Download.self, Search.self]
17+
)
1618
}
1719
}
1820

0 commit comments

Comments
 (0)