Emerge fastlane plugin
Getting Started
This project is a fastlane plugin. To get started with fastlane-plugin-emerge, add it to your project by running:
fastlane add_plugin emergeAbout Emerge
Emerge offers a suite of products to help optimize app size, performance and quality. This plugin provides a set of actions to interact with the Emerge API.
Usage
API Token
First obtain an API token for your organization. The API Token is used to authenticate with the Emerge API in each call. Our actions will automatically pick up the API key if configured as an EMERGE_API_TOKEN environment variable.
Size Analysis
platform :ios do
lane :emerge_upload do
# Tip: group builds in our dashboard via the `tag` parameter
emerge(tag: 'pr_build')
end
end- Produce a build using
gym(),run_tests(), or other Fastlane actions - When you are ready to upload to Emerge, simply call the
emerge()action- a. We will automatically detect the most recently built app to upload, or you can manually pass in a
file_pathparameter
- a. We will automatically detect the most recently built app to upload, or you can manually pass in a
For a full list of available parameters run fastlane action emerge.
Snapshot Testing
Emerge Snapshot Testing works by parsing Xcode Previews from the app binary. This means the upload to Emerge's service needs to include Previews as part of the app code. There are a couple ways to do this:
Re-use a unit test build with the emerge() action
If you're already running unit tests with fastlane, simply call the emerge() action after running unit tests to automatically upload the unit test build to Emerge. The action will detect the build generated for unit tests, or the file_path param can be explicitly set. Generally this build is a Debug build and should have Previews code included.
Generate a new build with the emerge_snapshot() action
This will build the app from scratch with recommended configurations to prevent Previews from being removed/stripped, and then upload the built app to Emerge.
platform :ios do
lane :snapshot_testing do
# Call the `emerge_snapshot()` action with the respective scheme for
# us to build. We will generate a build with the recommended settings
# and upload to Emerge's API.
emerge_snapshot(scheme: 'Hacker News')
end
endFor a full list of available parameters run fastlane action emerge_snapshot.
Git Configuration
For build comparisons to work, Emerge needs the appropriate Git sha and base_sha values set on each build. Emerge will automatically compare a build at sha against the build we find matching the base_sha for a given application id. We also recommend setting pr_number, branch, repo_name, and previous_sha for the best experience.
For example:
-
sha:pr-branch-commit-2 -
base_sha:main-branch-commit-1 -
previous_sha:pr-branch-commit-1 -
pr_number:42 -
branch:my-awesome-feature -
repo_name:EmergeTools/hackernews
Will compare the size difference of your pull request changes.
This plugin will automatically configure Git values for you assuming certain Github workflow triggers:
on:
# Produce base builds with a 'sha' when commits are pushed to the main branch
push:
branches: [main]
# Produce branch comparison builds with `sha` and `base_sha` when commits are pushed
# to open pull requests
pull_request:
branches: [main]
...If this doesn't cover your use-case, manually set the sha and base_sha values when calling the Emerge plugin.
Issues and Feedback
For any other issues and feedback about this plugin, please open a GitHub issue.
Troubleshooting
If you have trouble using plugins, check out the Plugins Troubleshooting guide.
Using fastlane Plugins
For more information about how the fastlane plugin system works, check out the Plugins documentation.
About fastlane
fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out fastlane.tools.