From f8aa0032eb03775d9423067ddc7e95bae5427162 Mon Sep 17 00:00:00 2001 From: Dustin Do Date: Mon, 23 Sep 2024 12:12:28 +0700 Subject: [PATCH] feat(ci): check mobile app export on push (#374) --- .github/workflows/checks.yaml | 58 +++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/.github/workflows/checks.yaml b/.github/workflows/checks.yaml index b1964f96..3ca7ed6a 100644 --- a/.github/workflows/checks.yaml +++ b/.github/workflows/checks.yaml @@ -4,6 +4,10 @@ on: - push - workflow_dispatch +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: optimize_ci: runs-on: ubuntu-latest # or whichever runner you use for your CI @@ -93,3 +97,57 @@ jobs: - name: Biome lint run: pnpm run -r "check" + + expo_export: + name: Expo Export + needs: optimize_ci + if: needs.optimize_ci.outputs.skip == 'false' + runs-on: ubuntu-latest + + steps: + - name: 🏗 Setup repo + uses: actions/checkout@v3 + + - name: 🏗 Setup Node + uses: actions/setup-node@v3 + with: + node-version: 18.x + + - uses: pnpm/action-setup@v4 + name: 🏗 Install pnpm + with: + run_install: false + + - name: 🏗 Get pnpm store directory + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV + + - uses: actions/cache@v4 + name: 🏗 Setup pnpm cache + with: + path: ${{ env.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + + - name: 📦 Install dependencies + run: pnpm install + + - name: 👷 Build app + working-directory: apps/mobile + env: + NODE_ENV: production + EXPO_USE_METRO_WORKSPACE_ROOT: 0 + EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY: ${{ secrets.EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY }} + EXPO_PUBLIC_API_URL: ${{ secrets.EXPO_PUBLIC_API_URL }} + SENTRY_ORG: ${{ secrets.SENTRY_ORG }} + SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + SENTRY_ALLOW_FAILURE: true + EXPO_PUBLIC_SENTRY_DSN: ${{ secrets.EXPO_PUBLIC_SENTRY_DSN }} + EXPO_PUBLIC_POSTHOG_API_KEY: ${{ secrets.EXPO_PUBLIC_POSTHOG_API_KEY }} + EXPO_PUBLIC_POSTHOG_HOST: ${{ secrets.EXPO_PUBLIC_POSTHOG_HOST }} + EXPO_PUBLIC_REVENUECAT_PROJECT_IOS_API_KEY: ${{ secrets.EXPO_PUBLIC_REVENUECAT_PROJECT_IOS_API_KEY }} + run: | + npx expo export --platform ios