Add a weekly + manual release-dryrun workflow that exercises the full store pipeline without publishing: Android validates the AAB against Google Play (validate_only), iOS builds a fully signed archive via match (readonly) and skips the App Store upload. Both Fastlane lanes gain a dry_run option that reuses the real release path so the dry-run stays faithful to it. Also add release-mode compile checks (flutter build apk/ios --release) to CI and PR checks to catch release-only breakage, pinning the JDK to match the release toolchain. Trim ci.yml from a redundant 3-OS matrix to two purpose-built jobs (analyze/test once on Linux, iOS build on macOS). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
30 lines
1,023 B
Ruby
30 lines
1,023 B
Ruby
# This file contains the fastlane.tools configuration
|
|
# You can find the documentation at https://docs.fastlane.tools
|
|
#
|
|
# For a list of all available actions, check out
|
|
#
|
|
# https://docs.fastlane.tools/actions
|
|
#
|
|
# For a list of all available plugins, check out
|
|
#
|
|
# https://docs.fastlane.tools/plugins/available-plugins
|
|
#
|
|
|
|
# Uncomment the line if you want fastlane to automatically update itself
|
|
# update_fastlane
|
|
|
|
default_platform(:android)
|
|
|
|
platform :android do
|
|
desc "Deploy a new version to the Google Play"
|
|
lane :deploy do |options|
|
|
# Upload to the play store ussing the provided credentials and AAB from flutter build.
|
|
# With dry_run:true (release dry-run workflow), validate_only authenticates and
|
|
# validates the AAB against Google Play without committing the release.
|
|
upload_to_play_store(
|
|
json_key_data: Base64.decode64(ENV["PLAY_STORE_CREDENTIALS"]),
|
|
aab: "../build/app/outputs/bundle/release/app-release.aab",
|
|
validate_only: options[:dry_run] || false
|
|
)
|
|
end
|
|
end
|