Skip to content

Commit 0aaaa1f

Browse files
Try #276:
2 parents 59de75d + 70e5e29 commit 0aaaa1f

File tree

6 files changed

+62
-8
lines changed

6 files changed

+62
-8
lines changed

.github/scripts/check-release.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,18 @@ current_tag=$(echo $GITHUB_REF | tr -d 'refs/tags/')
55
file1='MeiliSearch.podspec'
66
file2='README.md'
77
file3='.code-samples.meilisearch.yaml'
8+
file4='Sources/MeiliSearch/Model/PackageVersion.swift'
89
file_tag1=$(grep ' s.version' $file1 | cut -d '=' -f2 | tr -d "'" | tr -d ' ')
910
file_tag2=$(grep '.package(url:' $file2 | cut -d ':' -f4 | tr -d '"' | tr -d ')' | tr -d ' ')
1011
file_tag3=$(grep '.package(url:' $file3 | cut -d ':' -f4 | tr -d '"' | tr -d ')' | tr -d ' ')
11-
if [ "$current_tag" != "$file_tag1" ] || [ "$current_tag" != "$file_tag2" ] || [ "$current_tag" != "$file_tag3" ]; then
12+
file_tag4=$(grep 'let current' -A 0 $file4 | cut -d '=' -f2 | tr -d '"' | tr -d ' ')
13+
14+
if [ "$current_tag" != "$file_tag1" ] || [ "$current_tag" != "$file_tag2" ] || [ "$current_tag" != "$file_tag3" ] || [ "$current_tag" != "$file_tag4" ]; then
1215
echo "Error: the current tag does not match the version in package file(s)."
1316
echo "$file1: found $file_tag1 - expected $current_tag"
1417
echo "$file2: found $file_tag2 - expected $current_tag"
15-
echo "$file2: found $file_tag3 - expected $current_tag"
18+
echo "$file3: found $file_tag3 - expected $current_tag"
19+
echo "$file4: found $file_tag4 - expected $current_tag"
1620
exit 1
1721
fi
1822

.github/workflows/cocoapods.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ jobs:
1313
- uses: actions/checkout@v2
1414
- name: Check release validity
1515
run: sh .github/scripts/check-release.sh
16+
- name: Lint podspec before submitting
17+
run: pod spec lint
1618
- name: Publish to CocoaPods register
1719
env:
1820
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,9 @@ _[Read more about this](https://github.com/meilisearch/integration-guides/blob/m
120120
⚠️ Before doing anything, make sure you got through the guide about [Releasing an Integration](https://github.com/meilisearch/integration-guides/blob/main/resources/integration-release.md).
121121

122122
Make a PR updating the different versions with the new one on these files:
123-
- [`MeiliSearch.podspec`](/MeiliSearch.podspec):
124-
```ruby
125-
s.version = 'X.X.X'
123+
- [`Sources/MeiliSearch/Model/PackageVersion.swift`](/Sources/MeiliSearch/Model/PackageVersion.swift):
124+
```swift
125+
private static let current = "X.X.X"
126126
```
127127
- [`.code-samples.meilisearch.yaml`](/.code-samples.meilisearch.yaml) on the line containing the following:
128128
```ruby

MeiliSearch.podspec

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,18 @@
66
# To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html
77
#
88

9+
# Loads version from `PackageVersion.current` defined in the PackageVersion.swift file.
10+
package_version = begin
11+
File
12+
.read("./Sources/MeiliSearch/Model/PackageVersion.swift")
13+
.match(/"([0-9]+.[0-9]+.[0-9]+)"/i)[1]
14+
rescue
15+
raise "Cannot retrieve a valid semver.org version in the PackageVersion.swift file"
16+
end
17+
918
Pod::Spec.new do |s|
1019
s.name = 'MeiliSearch'
11-
s.version = '0.13.0'
20+
s.version = package_version
1221
s.summary = 'The Meilisearch API client written in Swift'
1322

1423
# This description is used to generate tags and improve search results.
@@ -33,10 +42,11 @@ Pod::Spec.new do |s|
3342
s.homepage = 'https://github.com/meilisearch/meilisearch-swift'
3443
s.license = { :type => 'MIT', :file => 'LICENSE' }
3544
s.author = { 'Meilisearch' => '[email protected]' }
36-
s.source = { :git => 'https://github.com/meilisearch/meilisearch-swift.git', :tag => s.version.to_s }
45+
s.source = { :git => 'https://github.com/meilisearch/meilisearch-swift.git', :tag => package_version }
3746
s.social_media_url = 'https://twitter.com/meilisearch'
3847

39-
s.source_files = 'Sources/**/*'
48+
s.source_files = 'Sources/**/*.{h,m,swift}'
49+
4050
s.swift_versions = ['5.2']
4151
s.ios.deployment_target = '10.0'
4252
s.osx.deployment_target = '10.10'
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import Foundation
2+
3+
internal struct PackageVersion {
4+
/// This is the current version of the meilisearch-swift package
5+
private static let current = "0.13.0"
6+
7+
/**
8+
Retrieves the current version of the MeiliSearch Swift package and formats accordingly.
9+
10+
- returns: String containing the qualified version of this package eg. `Meilisearch Swift (v1.0.0)`
11+
*/
12+
static func qualifiedVersion(_ rawVersion: String? = nil) -> String {
13+
"Meilisearch Swift (v\(rawVersion ?? self.current))"
14+
}
15+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
@testable import MeiliSearch
2+
3+
import Foundation
4+
import XCTest
5+
6+
class PackageVersionTests: XCTestCase {
7+
func testAppendsContentsToPrefix() {
8+
XCTAssert(PackageVersion.qualifiedVersion().contains("Meilisearch Swift"))
9+
}
10+
11+
func testGetsFullyQualifiedVersion() {
12+
XCTAssertEqual(PackageVersion.qualifiedVersion("0.3.2"), "Meilisearch Swift (v0.3.2)")
13+
}
14+
15+
func testChecksForSemVerVersion() {
16+
let version = PackageVersion.qualifiedVersion()
17+
let regex = "[0-9]+.[0-9]+.[0-9]+"
18+
19+
let hasSemVer = (version.range(of: regex, options: .regularExpression) ?? nil) != nil
20+
21+
XCTAssert(hasSemVer, "The PackageVersion.current does not have a valid semver version.")
22+
}
23+
}

0 commit comments

Comments
 (0)