{"id":20149037,"url":"https://github.com/emergetools/fastlane-plugin-emerge","last_synced_at":"2025-04-09T08:11:31.075Z","repository":{"id":39795059,"uuid":"319534988","full_name":"EmergeTools/fastlane-plugin-emerge","owner":"EmergeTools","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-20T15:01:04.000Z","size":108,"stargazers_count":14,"open_issues_count":1,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-05T14:36:05.391Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EmergeTools.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-08T05:23:20.000Z","updated_at":"2025-02-20T15:00:32.000Z","dependencies_parsed_at":"2023-12-14T17:27:43.757Z","dependency_job_id":"825b2bd7-bb9d-4c75-bf0d-d42f9581a765","html_url":"https://github.com/EmergeTools/fastlane-plugin-emerge","commit_stats":{"total_commits":20,"total_committers":1,"mean_commits":20.0,"dds":0.0,"last_synced_commit":"d9e79c0f37e94a207ed53c9946160be52aae79ed"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmergeTools%2Ffastlane-plugin-emerge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmergeTools%2Ffastlane-plugin-emerge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmergeTools%2Ffastlane-plugin-emerge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmergeTools%2Ffastlane-plugin-emerge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EmergeTools","download_url":"https://codeload.github.com/EmergeTools/fastlane-plugin-emerge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247999864,"owners_count":21031046,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T22:40:57.388Z","updated_at":"2025-04-09T08:11:31.051Z","avatar_url":"https://github.com/EmergeTools.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Emerge `fastlane` plugin\n\n[![fastlane Plugin Badge](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-emerge)\n\n## Getting Started\n\nThis project is a [_fastlane_](https://github.com/fastlane/fastlane) plugin. To get started with `fastlane-plugin-emerge`, add it to your project by running:\n\n```bash\nfastlane add_plugin emerge\n```\n\n## About Emerge\n\n[Emerge](https://emergetools.com) 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.\n\n## Usage\n\n### API Token\n\nFirst obtain an [API token](https://docs.emergetools.com/docs/uploading-basics#obtain-an-api-key) 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.\n\n### Size Analysis\n\n```ruby\nplatform :ios do\n  lane :emerge_upload do\n    # Tip: group builds in our dashboard via the `tag` parameter\n    emerge(tag: 'pr_build')\n  end\nend\n```\n\n1. Produce a build using `gym()`, `run_tests()`, or other Fastlane actions\n2. When you are ready to upload to Emerge, simply call the `emerge()` action\n    - a. We will automatically detect the most recently built app to upload, or you can manually pass in a `file_path` parameter\n\nFor a full list of available parameters run `fastlane action emerge`.\n\n### Snapshot Testing\n\nEmerge 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:\n\n#### Re-use a unit test build with the `emerge()` action\n\nIf 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.\n\n#### Generate a new build with the `emerge_snapshot()` action\n\nThis will build the app from scratch with recommended configurations to prevent Previews from being removed/stripped, and then upload the built app to Emerge.\n\n```ruby\nplatform :ios do\n  lane :snapshot_testing do\n    # Call the `emerge_snapshot()` action with the respective scheme for\n    # us to build. We will generate a build with the recommended settings\n    # and upload to Emerge's API.\n    emerge_snapshot(scheme: 'Hacker News')\n  end\nend\n```\n\nFor a full list of available parameters run `fastlane action emerge_snapshot`.\n\n## Git Configuration\n\nFor 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.\n\nFor example:\n\n- `sha`: `pr-branch-commit-2`\n- `base_sha`: `main-branch-commit-1`\n- `previous_sha`: `pr-branch-commit-1`\n- `pr_number`: `42`\n- `branch`: `my-awesome-feature`\n- `repo_name`: `EmergeTools/hackernews`\n\nWill compare the size difference of your pull request changes.\n\nThis plugin will automatically configure Git values for you assuming certain Github workflow triggers:\n\n```yaml\non:\n  # Produce base builds with a 'sha' when commits are pushed to the main branch\n  push:\n    branches: [main]\n\n  # Produce branch comparison builds with `sha` and `base_sha` when commits are pushed\n  # to open pull requests\n  pull_request:\n    branches: [main]\n\n  ...\n```\n\nIf this doesn't cover your use-case, manually set the `sha` and `base_sha` values when calling the Emerge plugin.\n\n## Issues and Feedback\n\nFor any other issues and feedback about this plugin, please open a [GitHub issue](https://github.com/EmergeTools/fastlane-plugin-emerge/issues).\n\n## Troubleshooting\n\nIf you have trouble using plugins, check out the [Plugins Troubleshooting](https://docs.fastlane.tools/plugins/plugins-troubleshooting/) guide.\n\n## Using _fastlane_ Plugins\n\nFor more information about how the `fastlane` plugin system works, check out the [Plugins documentation](https://docs.fastlane.tools/plugins/create-plugin/).\n\n## About _fastlane_\n\n_fastlane_ is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out [fastlane.tools](https://fastlane.tools).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femergetools%2Ffastlane-plugin-emerge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femergetools%2Ffastlane-plugin-emerge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femergetools%2Ffastlane-plugin-emerge/lists"}