Skip to content

fix: remove top block above Your Lists #306

fix: remove top block above Your Lists

fix: remove top block above Your Lists #306

Workflow file for this run

name: Mobile Build CI
on:
push:
branches: [main]
pull_request:
branches: [main]
release:
types: [published]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
web-build:
name: Build Web App
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- name: Install dependencies
run: npm ci
- name: Generate Convex types
# continue-on-error so PRs without CONVEX_DEPLOY_KEY fall back to committed generated types
continue-on-error: true
run: npx convex codegen
env:
CONVEX_DEPLOY_KEY: ${{ secrets.CONVEX_DEPLOY_KEY }}
- name: Build web app
run: npm run build
env:
# Release builds use real URL; PR/push builds use placeholder (native code compile check only)
VITE_CONVEX_URL: ${{ secrets.VITE_CONVEX_URL || 'https://placeholder.convex.cloud' }}
- uses: actions/upload-artifact@v4
with:
name: web-dist
path: dist/
retention-days: 1
ios-build:
name: Build & Deploy iOS to TestFlight
runs-on: macos-latest
needs: web-build
if: github.event_name == 'release'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- uses: actions/download-artifact@v4
with:
name: web-dist
path: dist/
- name: Install dependencies
run: npm ci
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: true
working-directory: ios
- name: Capacitor sync
run: npx cap sync ios
- name: Fastlane Beta
working-directory: ios
env:
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }}
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}
APP_STORE_CONNECT_API_PRIVATE_KEY: ${{ secrets.APP_STORE_CONNECT_API_PRIVATE_KEY }}
APP_STORE_CONNECT_KEY_ID: ${{ secrets.APP_STORE_CONNECT_KEY_ID }}
APP_STORE_CONNECT_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
run: bundle exec fastlane beta
ios-build-check:
name: iOS Build Check
runs-on: macos-latest
needs: web-build
if: github.event_name != 'release'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- uses: actions/download-artifact@v4
with:
name: web-dist
path: dist/
- name: Install dependencies
run: npm ci
- name: Capacitor sync
run: npx cap sync ios
- name: Build iOS (simulator, no signing)
run: |
xcodebuild \
-scheme App \
-destination 'generic/platform=iOS Simulator' \
-configuration Debug \
-derivedDataPath /tmp/poo-ios-build \
CODE_SIGNING_ALLOWED=NO \
build
working-directory: ios/App
android-build:
name: Build Android
runs-on: ubuntu-latest
needs: web-build
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
- uses: actions/download-artifact@v4
with:
name: web-dist
path: dist/
- name: Install dependencies
run: npm ci
- name: Capacitor sync
run: npx cap sync android
- name: Cache Gradle
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ hashFiles('android/**/*.gradle*', 'android/**/gradle-wrapper.properties') }}
restore-keys: gradle-
- name: Build Android Debug
working-directory: android
run: ./gradlew assembleDebug