Skip to content

Commit

Permalink
[Vertex AI] Prepare podspec for a CocoaPods release (#13585)
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewheard authored Sep 4, 2024
1 parent 7c6c555 commit 413dfef
Show file tree
Hide file tree
Showing 7 changed files with 105 additions and 51 deletions.
23 changes: 23 additions & 0 deletions .github/workflows/vertexai.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,29 @@ jobs:
retry_wait_seconds: 120
command: scripts/build.sh FirebaseVertexAIIntegration ${{ matrix.target }} spm

pod-lib-lint:
# Don't run on private repo unless it is a PR.
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
strategy:
matrix:
target: [ios]
os: [macos-14]
include:
- os: macos-14
xcode: Xcode_15.2
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Clone mock responses
run: scripts/update_vertexai_responses.sh
- uses: ruby/setup-ruby@v1
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Build and test
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseVertexAI.podspec --platforms=${{ matrix.target }}

sample:
strategy:
matrix:
Expand Down
47 changes: 0 additions & 47 deletions FirebaseVertexAI-Docs.not_podspec

This file was deleted.

67 changes: 67 additions & 0 deletions FirebaseVertexAI.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
Pod::Spec.new do |s|
s.name = 'FirebaseVertexAI'
s.version = '11.2.0-beta'
s.summary = 'Vertex AI in Firebase - Public Preview'

s.description = <<-DESC
[Public Preview] Build AI-powered apps and features with the Gemini API using
the Vertex AI in Firebase SDK.
DESC

s.homepage = 'https://firebase.google.com'
s.license = { :type => 'Apache-2.0', :file => 'LICENSE' }
s.authors = 'Google, Inc.'

s.source = {
:git => 'https://github.com/firebase/firebase-ios-sdk.git',
:tag => 'CocoaPods-' + s.version.to_s
}

s.social_media_url = 'https://twitter.com/Firebase'

ios_deployment_target = '15.0'
osx_deployment_target = '11.0'
tvos_deployment_target = '15.0'
watchos_deployment_target = '8.0'

s.ios.deployment_target = ios_deployment_target
s.osx.deployment_target = osx_deployment_target
s.tvos.deployment_target = tvos_deployment_target
s.watchos.deployment_target = watchos_deployment_target

s.cocoapods_version = '>= 1.12.0'
s.prefix_header_file = false

s.source_files = [
'FirebaseVertexAI/Sources/**/*.swift',
]

s.swift_version = '5.9'

s.framework = 'Foundation'
s.ios.framework = 'UIKit'
s.osx.framework = 'AppKit'
s.tvos.framework = 'UIKit'
s.watchos.framework = 'WatchKit'

s.dependency 'FirebaseAppCheckInterop', '~> 11.2'
s.dependency 'FirebaseAuthInterop', '~> 11.2'
s.dependency 'FirebaseCore', '~> 11.2'
s.dependency 'FirebaseCoreExtension', '~> 11.2'

s.test_spec 'unit' do |unit_tests|
unit_tests_dir = 'FirebaseVertexAI/Tests/Unit/'
unit_tests.scheme = { :code_coverage => true }
unit_tests.platforms = {
:ios => ios_deployment_target,
:osx => osx_deployment_target,
:tvos => tvos_deployment_target
}
unit_tests.source_files = [
unit_tests_dir + '**/*.swift',
]
unit_tests.resources = [
unit_tests_dir + 'vertexai-sdk-test-data/mock-responses/**/*.{txt,json}',
]
end
end
7 changes: 6 additions & 1 deletion FirebaseVertexAI/Tests/Unit/ChatTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,12 @@ final class ChatTests: XCTestCase {
}

func testMergingText() async throws {
let fileURL = try XCTUnwrap(Bundle.module.url(
#if SWIFT_PACKAGE
let bundle = Bundle.module
#else // SWIFT_PACKAGE
let bundle = Bundle(for: Self.self)
#endif // SWIFT_PACKAGE
let fileURL = try XCTUnwrap(bundle.url(
forResource: "streaming-success-basic-reply-parts",
withExtension: "txt"
))
Expand Down
7 changes: 6 additions & 1 deletion FirebaseVertexAI/Tests/Unit/GenerativeModelTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1278,7 +1278,12 @@ final class GenerativeModelTests: XCTestCase {
#if os(watchOS)
throw XCTSkip("Custom URL protocols are unsupported in watchOS 2 and later.")
#endif // os(watchOS)
let fileURL = try XCTUnwrap(Bundle.module.url(forResource: name, withExtension: ext))
#if SWIFT_PACKAGE
let bundle = Bundle.module
#else // SWIFT_PACKAGE
let bundle = Bundle(for: Self.self)
#endif // SWIFT_PACKAGE
let fileURL = try XCTUnwrap(bundle.url(forResource: name, withExtension: ext))
return { request in
let requestURL = try XCTUnwrap(request.url)
XCTAssertEqual(requestURL.path.occurrenceCount(of: "models/"), 1)
Expand Down
3 changes: 2 additions & 1 deletion FirebaseVertexAI/Tests/Unit/VertexComponentTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@

import FirebaseCore
import Foundation
import SharedTestUtilities
import XCTest

@_implementationOnly import FirebaseCoreExtension

@testable import FirebaseVertexAI

@available(iOS 15.0, macOS 11.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *)
Expand Down
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1305,7 +1305,7 @@ let package = Package(
),
.testTarget(
name: "FirebaseVertexAIUnit",
dependencies: ["FirebaseVertexAI", "SharedTestUtilities"],
dependencies: ["FirebaseVertexAI"],
path: "FirebaseVertexAI/Tests/Unit",
resources: [
.process("vertexai-sdk-test-data/mock-responses"),
Expand Down

0 comments on commit 413dfef

Please sign in to comment.