From 8ab6b899f2d5e9609ff27d326a7c146b82fe6675 Mon Sep 17 00:00:00 2001 From: Shiv Shankar Tiwari Date: Fri, 24 Jul 2026 19:18:39 +0530 Subject: [PATCH] ci: add EAS Workflow to build, submit & OTA-update on push MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit .eas/workflows/create-production-builds.yml runs on EAS servers (on push to main, or manually via `eas workflow:run`): publishes an OTA update, builds iOS production, and submits to App Store Connect — no local CLI. iOS-only for now (Android keystore not configured). Includes a commented tag-based trigger since submitting to the App Store on every push isn't usually desirable. Requires the one-time GitHub↔EAS repo connection. Co-Authored-By: Claude Opus 4.8 (1M context) --- .eas/workflows/create-production-builds.yml | 57 +++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .eas/workflows/create-production-builds.yml diff --git a/.eas/workflows/create-production-builds.yml b/.eas/workflows/create-production-builds.yml new file mode 100644 index 0000000..14214f3 --- /dev/null +++ b/.eas/workflows/create-production-builds.yml @@ -0,0 +1,57 @@ +# EAS Workflow — production deploy for SnapBiodata (iOS) +# Docs: https://docs.expo.dev/eas/workflows/get-started/ +# +# Runs on EAS servers. Two ways to trigger: +# • automatically on every push to `main` (see `on:` below), or +# • manually: npx eas-cli@latest workflow:run create-production-builds.yml +# +# ── One-time setup ─────────────────────────────────────────────────────────── +# Connect this GitHub repo to the EAS project so pushes trigger the workflow: +# Expo dashboard → @agastyaai/snapbiodata → project settings → GitHub → connect. +# +# ⚠️ IMPORTANT: this submits to the App Store on every push to main. App Store +# review happens per submission, so for a real release cadence you likely want +# `submit_ios` to run only on version tags, not every push — see the commented +# `on:` alternative below. The `publish_update` (OTA) job is the safe +# every-push action for JS-only changes. +# +# Android is intentionally omitted until its keystore is configured +# (`eas credentials` → Android). Add build_android/submit_android then. +# ───────────────────────────────────────────────────────────────────────────── + +name: Create production builds + +on: + push: + branches: + - main + # Release-only alternative (recommended for build+submit) — swap the block above: + # push: + # tags: + # - 'v*' + +jobs: + # Fast path: publish an OTA JS update to the production channel on every push. + publish_update: + name: OTA update (production) + type: update + params: + branch: production + message: ${{ github.sha }} + + # Native build. + build_ios: + name: Build iOS (production) + type: build + params: + platform: ios + profile: production + + # Upload the fresh build to App Store Connect (personal account). + submit_ios: + name: Submit to App Store + needs: [build_ios] + type: submit + params: + platform: ios + profile: production