{"id":13601231,"url":"https://github.com/expo/expo-github-action","last_synced_at":"2025-05-14T10:05:17.344Z","repository":{"id":34595262,"uuid":"161909611","full_name":"expo/expo-github-action","owner":"expo","description":"Expo GitHub Action makes it easy to automate EAS builds or updates","archived":false,"fork":false,"pushed_at":"2025-03-04T14:07:24.000Z","size":31269,"stargazers_count":872,"open_issues_count":44,"forks_count":87,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-11T19:14:23.403Z","etag":null,"topics":["actions","cli","continuous-delivery","continuous-integration","expo","github-actions"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/expo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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":"2018-12-15T13:52:53.000Z","updated_at":"2025-04-11T13:43:03.000Z","dependencies_parsed_at":"2024-01-14T19:12:57.549Z","dependency_job_id":"fc5ea98c-c49d-4d85-894b-7e0fedcc332c","html_url":"https://github.com/expo/expo-github-action","commit_stats":{"total_commits":291,"total_committers":32,"mean_commits":9.09375,"dds":"0.29209621993127144","last_synced_commit":"8108b8660bffafbf7b8132b1b108219f2269f2a0"},"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expo%2Fexpo-github-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expo%2Fexpo-github-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expo%2Fexpo-github-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expo%2Fexpo-github-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/expo","download_url":"https://codeload.github.com/expo/expo-github-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248465345,"owners_count":21108244,"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":["actions","cli","continuous-delivery","continuous-integration","expo","github-actions"],"created_at":"2024-08-01T18:00:58.990Z","updated_at":"2025-04-11T19:14:41.193Z","avatar_url":"https://github.com/expo.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eexpo-github-action\u003c/h1\u003e\n  \u003cp\u003ePublish, build or manage your \u003ca href=\"https://github.com/expo/expo\"\u003eExpo\u003c/a\u003e app with GitHub Actions!\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/expo/expo-github-action/releases\" title=\"Latest release\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.shields.io/github/package-json/v/expo/expo-github-action?style=flat-square\u0026color=0366D6\u0026labelColor=49505A\"\u003e\n      \u003cimg alt=\"Latest release\" src=\"https://img.shields.io/github/package-json/v/expo/expo-github-action?style=flat-square\u0026color=0366D6\u0026labelColor=D1D5DA\" /\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/expo/expo-github-action/actions\" title=\"Workflow status\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.shields.io/github/actions/workflow/status/expo/expo-github-action/test.yml?branch=main\u0026style=flat-square\u0026labelColor=49505A\"\u003e\n      \u003cimg alt=\"Workflow status\" src=\"https://img.shields.io/github/actions/workflow/status/expo/expo-github-action/test.yml?branch=main\u0026style=flat-square\u0026labelColor=D1D5DA\" /\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#configuration-options\"\u003e\u003cb\u003eUsage\u003c/b\u003e\u003c/a\u003e\n  \u0026nbsp;\u0026nbsp;\u0026mdash;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#example-workflows\"\u003e\u003cb\u003eExamples\u003c/b\u003e\u003c/a\u003e\n  \u0026nbsp;\u0026nbsp;\u0026mdash;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#things-to-know\"\u003e\u003cb\u003eCaveats\u003c/b\u003e\u003c/a\u003e\n  \u0026nbsp;\u0026nbsp;\u0026mdash;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"./CHANGELOG.md\"\u003e\u003cb\u003eChangelog\u003c/b\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n## What's inside?\n\nWith this Expo action, you have full access to [Expo CLI][link-expo-cli] and [EAS CLI][link-eas-cli].\nIt lets you automate the `eas update` or `eas build` commands, leaving you with more time to work on your project.\nSome additional features are included to make the usage of this action as simple as possible, like caching and authentication.\n\n## Configuration options\n\n\u003e Create your [`EXPO_TOKEN`][link-expo-token] GitHub secret.\n\nThis action is customizable through variables defined in the [`action.yml`](action.yml).\nHere is a summary of all the input options you can use.\n\n| variable           | default | description                                                                                   |\n| ------------------ | ------- | --------------------------------------------------------------------------------------------- |\n| **eas-version**    | -       | EAS CLI version to install _(skips when omitted)_                                             |\n| **eas-cache**      | `true`  | If it should use the GitHub actions cache ([read more](#using-the-built-in-cache))            |\n| **packager**       | `yarn`  | Package manager to use _(e.g. `bun`, `yarn`, or `npm`)_                                               |\n| **token**          | -       | Token of your Expo account - [get your token][link-expo-token] _(use with [secrets][link-actions-secrets])_                  |\n| **patch-watchers** | `true`  | If it should patch the `fs.inotify.*` limits on Ubuntu ([read more](#enospc-errors-on-linux)) |\n\n## Example workflows\n\nBefore diving into the workflow examples, you should know the basics of GitHub Actions.\nYou can read more about this in the [GitHub Actions documentation][link-actions].\n\n1. [Create new EAS Update on push to main](#create-new-eas-update-on-push-to-main)\n2. [Create new EAS build on push to main](#create-new-eas-build-on-push-to-main)\n3. [Create previews on PRs](#create-previews-on-prs)\n\n### Create new EAS Update on push to main\n\nThis workflow listens to the `push` event on the `main` branch.\nIt sets up all required components to publish the app, including authentication with a [token][link-expo-token].\n\n\u003e Always use [secrets][link-actions-secrets] when using tokens.\n\n```yml\non:\n  push:\n    branches:\n      - main\njobs:\n  update:\n    runs-on: ubuntu-latest\n    steps:\n      - name: 🏗 Setup repo\n        uses: actions/checkout@v3\n\n      - name: 🏗 Setup Node\n        uses: actions/setup-node@v3\n        with:\n          node-version: 18.x\n          cache: yarn\n\n      - name: 🏗 Setup EAS\n        uses: expo/expo-github-action@v8\n        with:\n          eas-version: latest\n          token: ${{ secrets.EXPO_TOKEN }}\n\n      - name: 📦 Install dependencies\n        run: yarn install\n\n      - name: 🚀 Create update\n        run: eas update --auto --non-interactive\n```\n\n### Creating new EAS build on push to main\n\nThis action also allows you to install the EAS CLI.\nTo do this, add the **eas-version** property, and the action will install it.\nWe recommend using `latest` for the EAS CLI.\n\n\u003e The [**token**][link-expo-token] is shared for both Expo and EAS CLI.\n\n```yml\non:\n  push:\n    branches:\n      - main\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: 🏗 Setup repo\n        uses: actions/checkout@v3\n\n      - name: 🏗 Setup Node\n        uses: actions/setup-node@v3\n        with:\n          node-version: 18.x\n          cache: yarn\n\n      - name: 🏗 Setup EAS\n        uses: expo/expo-github-action@v8\n        with:\n          eas-version: latest\n          token: ${{ secrets.EXPO_TOKEN }}\n\n      - name: 📦 Install dependencies\n        run: yarn install\n\n      - name: 🚀 Build app\n        run: eas build --non-interactive\n```\n\n### Create previews on PRs\n\nReviewing pull requests can take some time.\nThe reviewer needs to check out the branch, install the changes, and run the bundler to review the results.\nYou can also automatically publish the project for the reviewer to skip those manual steps.\n\n\u003e See the [preview docs](./preview#create-previews-on-pull-requests) for more information.\n\n```yml\non: [pull_request]\njobs:\n  preview:\n    runs-on: ubuntu-latest\n    steps:\n      - name: 🏗 Setup repo\n        uses: actions/checkout@v3\n\n      - name: 🏗 Setup Node\n        uses: actions/setup-node@v3\n        with:\n          node-version: 18.x\n          cache: yarn\n\n      - name: 🏗 Setup EAS\n        uses: expo/expo-github-action@v8\n        with:\n          eas-version: latest\n          token: ${{ secrets.EXPO_TOKEN }}\n\n      - name: 📦 Install dependencies\n        run: yarn install\n\n      - name: 🚀 Create preview\n        uses: expo/expo-github-action/preview@v8\n        with:\n          # `github.event.pull_request.head.ref` is only available on `pull_request` triggers.\n          # Use your own, or keep the automatically inferred branch name from `--auto`, when using different triggers.\n          command: eas update --auto --branch ${{ github.event.pull_request.head.ref }}\n```\n\n## Things to know\n\n### Automatic Expo login\n\nSome Expo commands, like `expo publish` and `eas build`, require you to be authenticated.\nThis action exports the [**token**][link-expo-token] to ensure you are authenticated in every workflow step.\n\n\u003e Note, this action does not store the [token][link-expo-token] anywhere. Each separate workflow job needs to set up the [**token**][link-expo-token] individually.\n\n### Using the built-in cache\n\nYou can opt-out from caching the Expo and EAS CLI installations.\nUnder the hood, it uses the [`@actions/cache`][link-actions-cache-package] package to restore a previous install.\nIt reduces the installation time because it only needs to download and extract a single tar file.\n\n\u003e Note, using cache will count towards your [repo cache limit][link-actions-cache-limit]. Both the Expo and EAS CLI are stored in different caches.\n\n### ENOSPC errors on Linux\n\nCreating new bundles with Metro can be memory intensive.\nIn the past, some builds resulted in `ENOSPC` errors.\nTo prevent anyone from running into this, we make sure Ubuntu has sensible defaults in terms of file system availability.\nYou can opt-out from patching the file system by setting **patch-watchers** to `false`.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cbr /\u003e\n  with :heart:\u0026nbsp;\u003cstrong\u003ebyCedric\u003c/strong\u003e\n  \u003cbr /\u003e\n\u003c/div\u003e\n\n[link-actions]: https://help.github.com/en/categories/automating-your-workflow-with-github-actions\n[link-actions-cache-limit]: https://github.com/actions/cache#cache-limits\n[link-actions-cache-package]: https://github.com/actions/toolkit/tree/main/packages/cache\n[link-actions-secrets]: https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets\n[link-expo-cli]: https://docs.expo.dev/workflow/expo-cli/\n[link-expo-release-channels]: https://docs.expo.dev/distribution/release-channels/\n[link-eas-cli]: https://github.com/expo/eas-cli#readme\n[link-preview-comment]: https://github.com/expo/expo-github-action/pull/149#issuecomment-1013184520\n[link-expo-token]: https://expo.dev/accounts/%5Baccount%5D/settings/access-tokens\n","funding_links":[],"categories":["TypeScript","cli"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpo%2Fexpo-github-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexpo%2Fexpo-github-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpo%2Fexpo-github-action/lists"}