Skip to content

continuous-deploy-fingerprint: Support platform: ios,android to exclude web from eas update #353

@MaganAnkur

Description

@MaganAnkur

Description of the bug

The continuous-deploy-fingerprint action's platform input only accepts 'all' | 'ios' | 'android'. When set to all (the default), builds are correctly scoped to iOS + Android, but the eas update step runs eas update --platform all, which triggers expo export for all platforms including web.

This causes failures for projects that use native-only modules (e.g. react-native-fast-tflite) which crash during the web export phase:

Metro error: Cannot read properties of undefined (reading 'getEnforcing')
TypeError: Cannot read properties of undefined (reading 'getEnforcing')

Expected behavior

is there any way to target both native platforms without including web. For example:

Accept comma-separated values: platform: ios,android
Or add a new option like platform: native
Or pass --platform per-platform to eas update the same way builds already resolve all → ['ios', 'android']

Actual behavior

  • platform: all → builds for iOS + Android (correct), but eas update --platform all exports for web too (breaks)
  • platform: ios → only handles iOS
  • platform: android → only handles Android
  • No option to target both iOS and Android without web
    Running the action twice (once per platform) is not viable because the second invocation overwrites the first PR comment (same messageId).

Additional context

name: Preview with EAS

on:
  pull_request:

jobs:
  preview-with-eas:
    name: Preview with EAS
    runs-on: ubuntu-latest
    concurrency: fingerprint-${{ github.run_id }}
    permissions:
      contents: read
      pull-requests: write
      actions: write
      packages: write
    steps:
      - name: 🔍 Check for EXPO_TOKEN
        run: |
          if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then
            echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions"
            exit 1
          fi

      - name: 🏗 Setup repo
        uses: actions/checkout@v4

      - name: 🌿 Setup Node
        uses: actions/setup-node@v4
        with:
          node-version-file: ".nvmrc"
          cache: "npm"

      - name: Λ Setup EAS
        uses: expo/expo-github-action@v8
        with:
          eas-version: latest
          token: ${{ secrets.EXPO_TOKEN }}

      - name: 📦 Install dependencies
        run: npm ci

      - name: 🚀 Create Preview with EAS Build and Update
        uses: expo/expo-github-action/continuous-deploy-fingerprint@main
        with:
          profile: development
          branch: development
          platform: all

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions