diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index b4ee3a4b0c..1273c9738d 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -6,42 +6,12 @@ on:
pull_request:
branches: [ master ]
-jobs:
- build-package-macos-12:
- name: "Build Package"
- runs-on: macos-12
- strategy:
- fail-fast: false
- matrix:
- xcode:
- - '13.2.1' # Swift 5.5
- - '13.4.1' # Swift 5.6
- steps:
- - uses: actions/checkout@v2
- - uses: ./.github/actions/setup
- with:
- xcode: ${{ matrix.xcode }}
- - name: Build Package
- run: bundle exec rake build:package:all
-
- build-package-macos-13:
- name: "Build Package"
- runs-on: macos-13
- strategy:
- fail-fast: false
- matrix:
- xcode:
- - '14.2' # Swift 5.7
- - '14.3' # Swift 5.8
- steps:
- - uses: actions/checkout@v2
- - uses: ./.github/actions/setup
- with:
- xcode: ${{ matrix.xcode }}
- - name: Build Package
- run: bundle exec rake build:package:all
+env:
+ EMERGE_API_TOKEN: ${{ secrets.EMERGE_API_TOKEN }}
+ PR_NUMBER: ${{ github.event.number }}
- build-example:
+jobs:
+ fastlane-upload:
name: "Build Example App"
runs-on: macos-13
steps:
@@ -50,101 +20,4 @@ jobs:
with:
xcode: '14.3' # Swift 5.8
- name: Build Example
- run: bundle exec rake build:example:all
-
- test-package:
- name: "Test Package"
- runs-on: macos-13
- steps:
- - uses: actions/checkout@v2
- - uses: ./.github/actions/setup
- with:
- xcode: '14.3' # Swift 5.8
- - name: Test Package
- run: bundle exec rake test:package
- - name: Process test artifacts
- if: always()
- run: bundle exec rake test:process
- - name: Upload artifacts
- if: always()
- uses: actions/upload-artifact@v2
- with:
- name: TestArtifacts
- path: Tests/Artifacts
-
- build-xcframework:
- name: "Build XCFramework"
- runs-on: macos-12
- steps:
- - uses: actions/checkout@v2
- - uses: ./.github/actions/setup
- with:
- # XCFrameworks are forwards-compatible but not backwards-compatible.
- # The Xcode version we use for this job is that oldest Xcode version that
- # will be able to use these XCFrameworks and the lottie-spm package.
- xcode: '13.2.1' # Swift 5.5.2
- - name: Build XCFramework
- run: bundle exec rake build:xcframework
- - name: Upload XCFramework
- uses: actions/upload-artifact@v2
- with:
- name: BuildProducts
- # The xcframework is at the path `.build/archives/Lottie.xcframework.zip`.
- # GitHub always zips the artifacts before uploading, so if we uploaded the .xframework.zip
- # directly then it would actually upload a double-zip (a .zip containing our `Lottie.xcframework.zip`).
- # This is confusing especially since macOS Archive Utility automatially unzips both layers at once.
- # Instead, we upload the entire archives folder, resulting in an `XCFramework.zip` that unzips
- # to an `archives` directory containing our `Lottie.xcframework.zip`.
- path: .build/archives
-
- cocoapod:
- name: "Lint CocoaPods podspec"
- runs-on: macos-13
- steps:
- - uses: actions/checkout@v2
- - uses: ./.github/actions/setup
- with:
- install-mint: false
- - name: Lint CocoaPod Podspec
- run: bundle exec rake lint:podspec
-
- spm:
- name: "Test Swift Package Manager support"
- runs-on: macos-13
- steps:
- - uses: actions/checkout@v2
- - uses: ./.github/actions/setup
- with:
- install-mint: true
- - name: Test Swift Package Manager support
- run: bundle exec rake test:spm
-
- carthage:
- name: "Test Carthage support"
- runs-on: macos-13
- steps:
- - uses: actions/checkout@v2
- - uses: ./.github/actions/setup
- with:
- install-mint: true
- install-carthage: true
- - name: Test Carthage support
- run: bundle exec rake test:carthage
-
- swiftlint:
- name: "Lint Swift"
- runs-on: macos-13
- steps:
- - uses: actions/checkout@v2
- - uses: ./.github/actions/setup
- - name: Lint Swift
- run: bundle exec rake lint:swift
-
- embedded-libraries:
- name: "Lint Embedded Libraries"
- runs-on: macos-13
- steps:
- - uses: actions/checkout@v2
- - uses: ./.github/actions/setup
- - name: Lint Embedded Libraries
- run: bundle exec rake lint:EmbeddedLibraries
+ run: bundle exec fastlane emerge_upload
diff --git a/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index c3b09fccfe..919434a625 100644
--- a/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -2,6 +2,6 @@
+ location = "self:">
diff --git a/Example/Example.xcodeproj/xcshareddata/xcschemes/Example (iOS).xcscheme b/Example/Example.xcodeproj/xcshareddata/xcschemes/Example (iOS).xcscheme
index db40886273..35dfbc5f55 100644
--- a/Example/Example.xcodeproj/xcshareddata/xcschemes/Example (iOS).xcscheme
+++ b/Example/Example.xcodeproj/xcshareddata/xcschemes/Example (iOS).xcscheme
@@ -91,7 +91,7 @@
buildConfiguration = "Debug">
diff --git a/Gemfile b/Gemfile
index f786f5447b..f95e658f4e 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,4 +1,9 @@
-source 'https://rubygems.org' do
- gem 'cocoapods', '~> 1.11.0'
- gem "rake", "~> 13.0.0"
-end
+source 'https://rubygems.org'
+
+gem 'cocoapods'
+gem "rake"
+gem "fastlane"
+gem "git"
+
+plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
+eval_gemfile(plugins_path) if File.exist?(plugins_path)
diff --git a/Gemfile.lock b/Gemfile.lock
index 6ae1c82335..387163c681 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,33 +1,47 @@
-GEM
- specs:
-
GEM
remote: https://rubygems.org/
specs:
- CFPropertyList (3.0.5)
+ CFPropertyList (3.0.6)
rexml
- activesupport (6.1.4.1)
+ activesupport (7.0.6)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
- zeitwerk (~> 2.3)
- addressable (2.8.0)
- public_suffix (>= 2.0.2, < 5.0)
+ addressable (2.8.4)
+ public_suffix (>= 2.0.2, < 6.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
+ artifactory (3.0.15)
atomos (0.1.3)
- claide (1.0.3)
- cocoapods (1.11.2)
+ aws-eventstream (1.2.0)
+ aws-partitions (1.790.0)
+ aws-sdk-core (3.178.0)
+ aws-eventstream (~> 1, >= 1.0.2)
+ aws-partitions (~> 1, >= 1.651.0)
+ aws-sigv4 (~> 1.5)
+ jmespath (~> 1, >= 1.6.1)
+ aws-sdk-kms (1.71.0)
+ aws-sdk-core (~> 3, >= 3.177.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-s3 (1.131.0)
+ aws-sdk-core (~> 3, >= 3.177.0)
+ aws-sdk-kms (~> 1)
+ aws-sigv4 (~> 1.6)
+ aws-sigv4 (1.6.0)
+ aws-eventstream (~> 1, >= 1.0.2)
+ babosa (1.0.4)
+ claide (1.1.0)
+ cocoapods (1.12.1)
addressable (~> 2.8)
claide (>= 1.0.2, < 2.0)
- cocoapods-core (= 1.11.2)
+ cocoapods-core (= 1.12.1)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
- cocoapods-downloader (>= 1.4.0, < 2.0)
+ cocoapods-downloader (>= 1.6.0, < 2.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
- cocoapods-trunk (>= 1.4.0, < 2.0)
+ cocoapods-trunk (>= 1.6.0, < 2.0)
cocoapods-try (>= 1.1.0, < 2.0)
colored2 (~> 3.1)
escape (~> 0.0.4)
@@ -35,10 +49,10 @@ GEM
gh_inspector (~> 1.0)
molinillo (~> 0.8.0)
nap (~> 1.0)
- ruby-macho (>= 1.0, < 3.0)
+ ruby-macho (>= 2.3.0, < 3.0)
xcodeproj (>= 1.21.0, < 2.0)
- cocoapods-core (1.11.2)
- activesupport (>= 5.0, < 7)
+ cocoapods-core (1.12.1)
+ activesupport (>= 5.0, < 8)
addressable (~> 2.8)
algoliasearch (~> 1.0)
concurrent-ruby (~> 1.1)
@@ -56,47 +70,222 @@ GEM
nap (>= 0.8, < 2.0)
netrc (~> 0.11)
cocoapods-try (1.2.0)
+ colored (1.2)
colored2 (3.1.2)
- concurrent-ruby (1.1.9)
+ commander (4.6.0)
+ highline (~> 2.0.0)
+ concurrent-ruby (1.2.2)
+ declarative (0.0.20)
+ digest-crc (0.6.5)
+ rake (>= 12.0.0, < 14.0.0)
+ domain_name (0.5.20190701)
+ unf (>= 0.0.5, < 1.0.0)
+ dotenv (2.8.1)
+ emoji_regex (3.2.3)
escape (0.0.4)
- ethon (0.15.0)
+ ethon (0.16.0)
ffi (>= 1.15.0)
- ffi (1.15.4)
+ excon (0.100.0)
+ faraday (1.10.3)
+ faraday-em_http (~> 1.0)
+ faraday-em_synchrony (~> 1.0)
+ faraday-excon (~> 1.1)
+ faraday-httpclient (~> 1.0)
+ faraday-multipart (~> 1.0)
+ faraday-net_http (~> 1.0)
+ faraday-net_http_persistent (~> 1.0)
+ faraday-patron (~> 1.0)
+ faraday-rack (~> 1.0)
+ faraday-retry (~> 1.0)
+ ruby2_keywords (>= 0.0.4)
+ faraday-cookie_jar (0.0.7)
+ faraday (>= 0.8.0)
+ http-cookie (~> 1.0.0)
+ faraday-em_http (1.0.0)
+ faraday-em_synchrony (1.0.0)
+ faraday-excon (1.1.0)
+ faraday-httpclient (1.0.1)
+ faraday-multipart (1.0.4)
+ multipart-post (~> 2)
+ faraday-net_http (1.0.1)
+ faraday-net_http_persistent (1.2.0)
+ faraday-patron (1.0.0)
+ faraday-rack (1.0.0)
+ faraday-retry (1.0.3)
+ faraday_middleware (1.2.0)
+ faraday (~> 1.0)
+ fastimage (2.2.7)
+ fastlane (2.214.0)
+ CFPropertyList (>= 2.3, < 4.0.0)
+ addressable (>= 2.8, < 3.0.0)
+ artifactory (~> 3.0)
+ aws-sdk-s3 (~> 1.0)
+ babosa (>= 1.0.3, < 2.0.0)
+ bundler (>= 1.12.0, < 3.0.0)
+ colored
+ commander (~> 4.6)
+ dotenv (>= 2.1.1, < 3.0.0)
+ emoji_regex (>= 0.1, < 4.0)
+ excon (>= 0.71.0, < 1.0.0)
+ faraday (~> 1.0)
+ faraday-cookie_jar (~> 0.0.6)
+ faraday_middleware (~> 1.0)
+ fastimage (>= 2.1.0, < 3.0.0)
+ gh_inspector (>= 1.1.2, < 2.0.0)
+ google-apis-androidpublisher_v3 (~> 0.3)
+ google-apis-playcustomapp_v1 (~> 0.1)
+ google-cloud-storage (~> 1.31)
+ highline (~> 2.0)
+ json (< 3.0.0)
+ jwt (>= 2.1.0, < 3)
+ mini_magick (>= 4.9.4, < 5.0.0)
+ multipart-post (>= 2.0.0, < 3.0.0)
+ naturally (~> 2.2)
+ optparse (~> 0.1.1)
+ plist (>= 3.1.0, < 4.0.0)
+ rubyzip (>= 2.0.0, < 3.0.0)
+ security (= 0.1.3)
+ simctl (~> 1.6.3)
+ terminal-notifier (>= 2.0.0, < 3.0.0)
+ terminal-table (>= 1.4.5, < 2.0.0)
+ tty-screen (>= 0.6.3, < 1.0.0)
+ tty-spinner (>= 0.8.0, < 1.0.0)
+ word_wrap (~> 1.0.0)
+ xcodeproj (>= 1.13.0, < 2.0.0)
+ xcpretty (~> 0.3.0)
+ xcpretty-travis-formatter (>= 0.0.3)
+ fastlane-plugin-emerge (0.5.1)
+ faraday (~> 1.1)
+ ffi (1.15.5)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
+ git (1.18.0)
+ addressable (~> 2.8)
+ rchardet (~> 1.8)
+ google-apis-androidpublisher_v3 (0.45.0)
+ google-apis-core (>= 0.11.0, < 2.a)
+ google-apis-core (0.11.1)
+ addressable (~> 2.5, >= 2.5.1)
+ googleauth (>= 0.16.2, < 2.a)
+ httpclient (>= 2.8.1, < 3.a)
+ mini_mime (~> 1.0)
+ representable (~> 3.0)
+ retriable (>= 2.0, < 4.a)
+ rexml
+ webrick
+ google-apis-iamcredentials_v1 (0.17.0)
+ google-apis-core (>= 0.11.0, < 2.a)
+ google-apis-playcustomapp_v1 (0.13.0)
+ google-apis-core (>= 0.11.0, < 2.a)
+ google-apis-storage_v1 (0.19.0)
+ google-apis-core (>= 0.9.0, < 2.a)
+ google-cloud-core (1.6.0)
+ google-cloud-env (~> 1.0)
+ google-cloud-errors (~> 1.0)
+ google-cloud-env (1.6.0)
+ faraday (>= 0.17.3, < 3.0)
+ google-cloud-errors (1.3.1)
+ google-cloud-storage (1.44.0)
+ addressable (~> 2.8)
+ digest-crc (~> 0.4)
+ google-apis-iamcredentials_v1 (~> 0.1)
+ google-apis-storage_v1 (~> 0.19.0)
+ google-cloud-core (~> 1.6)
+ googleauth (>= 0.16.2, < 2.a)
+ mini_mime (~> 1.0)
+ googleauth (1.7.0)
+ faraday (>= 0.17.3, < 3.a)
+ jwt (>= 1.4, < 3.0)
+ memoist (~> 0.16)
+ multi_json (~> 1.11)
+ os (>= 0.9, < 2.0)
+ signet (>= 0.16, < 2.a)
+ highline (2.0.3)
+ http-cookie (1.0.5)
+ domain_name (~> 0.5)
httpclient (2.8.3)
- i18n (1.8.11)
+ i18n (1.14.1)
concurrent-ruby (~> 1.0)
- json (2.6.1)
- minitest (5.14.4)
+ jmespath (1.6.2)
+ json (2.6.3)
+ jwt (2.7.1)
+ memoist (0.16.2)
+ mini_magick (4.12.0)
+ mini_mime (1.1.2)
+ minitest (5.18.1)
molinillo (0.8.0)
+ multi_json (1.15.0)
+ multipart-post (2.3.0)
nanaimo (0.3.0)
nap (1.1.0)
+ naturally (2.2.1)
netrc (0.11.0)
- public_suffix (4.0.6)
+ optparse (0.1.1)
+ os (1.1.4)
+ plist (3.7.0)
+ public_suffix (4.0.7)
rake (13.0.6)
+ rchardet (1.8.0)
+ representable (3.2.0)
+ declarative (< 0.1.0)
+ trailblazer-option (>= 0.1.1, < 0.2.0)
+ uber (< 0.2.0)
+ retriable (3.1.2)
rexml (3.2.5)
+ rouge (2.0.7)
ruby-macho (2.5.1)
+ ruby2_keywords (0.0.5)
+ rubyzip (2.3.2)
+ security (0.1.3)
+ signet (0.17.0)
+ addressable (~> 2.8)
+ faraday (>= 0.17.5, < 3.a)
+ jwt (>= 1.5, < 3.0)
+ multi_json (~> 1.10)
+ simctl (1.6.10)
+ CFPropertyList
+ naturally
+ terminal-notifier (2.0.0)
+ terminal-table (1.8.0)
+ unicode-display_width (~> 1.1, >= 1.1.1)
+ trailblazer-option (0.1.2)
+ tty-cursor (0.7.1)
+ tty-screen (0.8.1)
+ tty-spinner (0.9.3)
+ tty-cursor (~> 0.7)
typhoeus (1.4.0)
ethon (>= 0.9.0)
- tzinfo (2.0.4)
+ tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
- xcodeproj (1.21.0)
+ uber (0.1.0)
+ unf (0.1.4)
+ unf_ext
+ unf_ext (0.0.8.2)
+ unicode-display_width (1.8.0)
+ webrick (1.8.1)
+ word_wrap (1.0.0)
+ xcodeproj (1.22.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.3.0)
rexml (~> 3.2.4)
- zeitwerk (2.5.1)
+ xcpretty (0.3.0)
+ rouge (~> 2.0.7)
+ xcpretty-travis-formatter (1.0.1)
+ xcpretty (~> 0.2, >= 0.0.7)
PLATFORMS
ruby
DEPENDENCIES
- cocoapods (~> 1.11.0)!
- rake (~> 13.0.0)!
+ cocoapods
+ fastlane
+ fastlane-plugin-emerge
+ git
+ rake
BUNDLED WITH
- 2.2.16
+ 2.3.11
diff --git a/fastlane/Appfile b/fastlane/Appfile
new file mode 100644
index 0000000000..4282947e2a
--- /dev/null
+++ b/fastlane/Appfile
@@ -0,0 +1,6 @@
+# app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app
+# apple_id("[[APPLE_ID]]") # Your Apple Developer Portal username
+
+
+# For more information about the Appfile, see:
+# https://docs.fastlane.tools/advanced/#appfile
diff --git a/fastlane/Fastfile b/fastlane/Fastfile
new file mode 100644
index 0000000000..ecaac597e5
--- /dev/null
+++ b/fastlane/Fastfile
@@ -0,0 +1,42 @@
+# This file contains the fastlane.tools configuration
+# You can find the documentation at https://docs.fastlane.tools
+#
+# For a list of all available actions, check out
+#
+# https://docs.fastlane.tools/actions
+#
+# For a list of all available plugins, check out
+#
+# https://docs.fastlane.tools/plugins/available-plugins
+#
+
+# Uncomment the line if you want fastlane to automatically update itself
+# update_fastlane
+
+fastlane_require 'git'
+
+default_platform(:ios)
+
+g = Git.open('..')
+
+platform :ios do
+ desc "Description of what the lane does"
+ lane :emerge_upload do
+ build_app(
+ workspace: "./Lottie.xcworkspace",
+ export_method: "ad-hoc",
+ skip_codesigning: true,
+ destination: "generic/platform=iOS Simulator",
+ configuration: "Debug",
+ skip_package_ipa: true,
+ scheme: "Example (iOS)")
+ if ENV["PR_NUMBER"] && ENV["PR_NUMBER"] != "false"
+ current_sha = g.log[0].parents[1].sha
+ baseBuildId = g.log[0].parent.sha
+ emerge(repo_name: "noahsmartin/lottie-ios", pr_number: ENV["PR_NUMBER"], sha: current_sha, base_sha: baseBuildId)
+ else
+ current_sha = g.log[0].sha
+ emerge(repo_name: "noahsmartin/lottie-ios", build_id: current_sha)
+ end
+ end
+end
diff --git a/fastlane/Pluginfile b/fastlane/Pluginfile
new file mode 100644
index 0000000000..153db333d6
--- /dev/null
+++ b/fastlane/Pluginfile
@@ -0,0 +1,5 @@
+# Autogenerated by fastlane
+#
+# Ensure this file is checked in to source control!
+
+gem 'fastlane-plugin-emerge'