chore: add builds.yml and optional Bitrise verification (no workflow impact)#25147
chore: add builds.yml and optional Bitrise verification (no workflow impact)#25147
Conversation
…nd secrets: Feature Flag default built in values; Scripts to interact and bring all this info together to call build.sh; script to verify if all env keys are the ones needed; code owner applied to builds.yml file
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection: Performance Test Selection: |
|



Description
Introduces a single source of truth for build configuration (
.github/builds.yml) and supporting scripts so we can later migrate from Bitrise to GitHub Actions without changing behavior today.What was added
.github/builds.yml– Defines all build variants (main-prod, main-rc, main-test, main-e2e, main-exp, main-dev, flask-prod, flask-test, flask-e2e, flask-dev) with env, secret mappings, code fencing, and remote feature flag defaults.validate-build-config.js(YAML validation),apply-build-config.js(load config and set env),set-secrets-from-config.js(map GitHub Secrets to env from config), andverify-build-config.js(compare Bitrise env with builds.yml).verify-build-config.js --verbosein selected workflows. This step is skippable and runs with|| true, so it never fails the build. It only logs comparisons between Bitrise env and builds.yml for validation.Important: no impact on existing workflow or Bitrise
build_ios_flask_releasewas removed as a thin wrapper that only calledbuild_ios_flask_prod; callers can use the prod workflow directly.Reason for the change: Prepare for Bitrise deprecation by having build config in one place and validating parity between Bitrise and builds.yml before any migration.
Improvement: Clear, version-controlled build config and optional verification in CI without changing current Bitrise behavior or outcomes.
Changelog
CHANGELOG entry: null
Related issues
Fixes:
Manual testing steps
Feature: Build config and Bitrise verification
Scenario: CI runs existing Bitrise workflows unchanged
Given a branch with this PR merged
When a Bitrise build runs (e2e, Android/iOS prod, etc.)
Then all existing steps run as before
And Phase 1.5 verification runs optionally (skippable, non-blocking)
And the build outcome is unchanged
Screenshots/Recordings
N/A – CI/config only; no UI changes.
Before
N/A
After
N/A
Pre-merge author checklist
Pre-merge reviewer checklist
Note
Medium Risk
Touches CI/build configuration and removes a Bitrise workflow alias; while the new verification step is non-blocking, misconfiguration or missing callers could still disrupt build automation.
Overview
Adds a centralized
.github/builds.ymlto define build variants (env vars, secret mappings, code fencing, and defaultremote_feature_flags) plus accompanying Node scripts to validate/load/export this config (apply-build-config.js,validate-build-config.js,set-secrets-from-config.js,verify-build-config.js).Updates
bitrise.ymlto run an optional, skippable Phase 1.5 parity check (verify-build-config.js --verbose || true) in key workflows, and drops the redundantbuild_ios_flask_releasewrapper workflow. Also updates CODEOWNERS to protect.github/builds.ymland addsjs-yamlas a dependency.Written by Cursor Bugbot for commit fab10a9. This will update automatically on new commits. Configure here.