Files
FarmaFinder/bitrise.yml
T
Ichitux 803eaab134
Build & Push Docker Images / test-backend (push) Successful in 21s
Build & Push Docker Images / test-frontend (push) Successful in 23s
Build & Push Docker Images / build-backend (push) Successful in 17s
Build & Push Docker Images / build-frontend (push) Successful in 15s
ci(bitrise): split deploy by tag prefix and add iOS code-signing step
- Tag triggers split: ios-v* -> deploy_ios, android-v* -> deploy_android.
  The blanket tag: "*" trigger that ran both platforms on every tag is gone.
- Add certificate-and-profile-installer@1 before xcode-archive@4 in
  deploy_ios and combined deploy. Reads Bitrise's auto-injected
  BITRISE_IOS_CODE_SIGNING_* env vars; no-op if not configured.
- Harden test_ios simulator destination to generic/platform=iOS Simulator
  (was iPhone 15, OS=latest, which breaks when the runner ships a
  different Xcode).
- Enable swift build cache on xcode-archive steps.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-27 11:12:21 +02:00

205 lines
6.1 KiB
YAML

---
format_version: "11"
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
project_type: capacitor
app:
envs:
- BITRISE_PROJECT_PATH: ""
- BITRISE_SCHEME: ""
trigger_map:
- push_branch: main
workflow: deploy
- pull_request_source_branch: "*"
workflow: test
- tag: "ios-v*"
workflow: deploy_ios
- tag: "android-v*"
workflow: deploy_android
workflows:
# ── Shared setup ──────────────────────────────────────────
_setup:
steps:
- activate-ssh-key@4:
run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
- git-clone@8: {}
- nvm@1:
inputs:
- node_version: "20"
- script@1:
title: Install dependencies & build frontend
inputs:
- content: |
#!/bin/bash
set -ex
npm install
npm install --prefix frontend
npm run build --prefix frontend
# ── Android test / PR build ──────────────────────────────
test:
before_run:
- _setup
steps:
- script@1:
title: Sync Android native project
inputs:
- content: |
#!/bin/bash
set -ex
npx cap sync android
- script@1:
title: Install Android SDK components
inputs:
- content: |
#!/bin/bash
set -ex
yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager \
"platforms;android-36" \
"build-tools;36.0.0" \
"platform-tools" || true
- android-build@1:
title: Build Android APK (debug)
inputs:
- project_location: android
- module: app
- variant: debug
# ── iOS test / PR build (simulator) ──────────────────────
test_ios:
before_run:
- _setup
steps:
- script@1:
title: Sync iOS native project
inputs:
- content: |
#!/bin/bash
set -ex
npx cap sync ios
- cocoapods-install@2:
inputs:
- podfile_path: ios/App/Podfile
- xcode-archive@4:
title: Build iOS (simulator)
inputs:
- project_path: ios/App/App.xcodeproj
- scheme: App
- configuration: Debug
- destination: generic/platform=iOS Simulator
- output_tool: xcodebuild
- cache_level: swift
# ── iOS deploy ───────────────────────────────────────────
deploy_ios:
before_run:
- _setup
steps:
- script@1:
title: Sync iOS native project
inputs:
- content: |
#!/bin/bash
set -ex
npx cap sync ios
- cocoapods-install@2:
inputs:
- podfile_path: ios/App/Podfile
- certificate-and-profile-installer@1: {}
- xcode-archive@4:
title: Archive iOS (release)
inputs:
- project_path: ios/App/App.xcodeproj
- scheme: App
- configuration: Release
- destination: generic/platform=iOS
- output_tool: xcodebuild
- export_method: app-store
- cache_level: swift
- deploy-to-bitrise-io@2: {}
# ── Android deploy ───────────────────────────────────────
deploy_android:
before_run:
- _setup
steps:
- script@1:
title: Sync Android native project
inputs:
- content: |
#!/bin/bash
set -ex
npx cap sync android
- script@1:
title: Install Android SDK components
inputs:
- content: |
#!/bin/bash
set -ex
yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager \
"platforms;android-36" \
"build-tools;36.0.0" \
"platform-tools" || true
- android-build@1:
title: Build Android AAB (release)
inputs:
- project_location: android
- module: app
- variant: release
- deploy-to-bitrise-io@2: {}
# ── Combined deploy (default branch push) ────────────────
deploy:
before_run:
- _setup
steps:
# Android
- script@1:
title: Sync Android native project
inputs:
- content: |
#!/bin/bash
set -ex
npx cap sync android
- script@1:
title: Install Android SDK components
inputs:
- content: |
#!/bin/bash
set -ex
yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager \
"platforms;android-36" \
"build-tools;36.0.0" \
"platform-tools" || true
- android-build@1:
title: Build Android AAB (release)
inputs:
- project_location: android
- module: app
- variant: release
# iOS
- script@1:
title: Sync iOS native project
inputs:
- content: |
#!/bin/bash
set -ex
npx cap sync ios
- cocoapods-install@2:
inputs:
- podfile_path: ios/App/Podfile
- certificate-and-profile-installer@1: {}
- xcode-archive@4:
title: Archive iOS (release)
inputs:
- project_path: ios/App/App.xcodeproj
- scheme: App
- configuration: Release
- destination: generic/platform=iOS
- output_tool: xcodebuild
- export_method: app-store
- cache_level: swift
- deploy-to-bitrise-io@2: {}