[BRE-1281] Enhance ios release notes formatting (#2103)

This commit is contained in:
brandonbiete 2025-11-06 11:16:36 -05:00 committed by GitHub
parent d26d553766
commit f320035d6a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 38 additions and 4 deletions

View File

@ -110,7 +110,6 @@ jobs:
- name: Upload app to with Fastlane
id: publish
if: ${{ inputs.dry-run == false }}
env:
VERSION_CODE: ${{ inputs.build-number }}
VERSION_NAME: ${{inputs.build-version}}
@ -119,7 +118,16 @@ jobs:
CHANGELOG: ${{ inputs.changelog }}
FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS: true
SUBMIT_RELEASE: ${{ inputs.submit-release }}
DRY_RUN: ${{ inputs.dry-run }}
run: |
if [ "$DRY_RUN" = "true" ]; then
echo "🧪 DRY RUN MODE - Testing without actual App Store submission"
echo "📦 Would publish build $VERSION_CODE to iOS App Store"
else
echo "🚀 PRODUCTION MODE - Publishing to iOS App Store"
echo "📦 Publishing build $VERSION_CODE to iOS App Store"
fi
if [ "$PRODUCT" = "Password Manager" ]; then
PACKAGE_NAME="com.8bit.bitwarden"
METADATA_PATH="metadata_bwpm_prod"
@ -139,7 +147,8 @@ jobs:
app_identifier:"$PACKAGE_NAME" \
changelog:"$CHANGELOG" \
metadata_path:"$METADATA_PATH" \
submit_release:"$SUBMIT_RELEASE"
submit_release:"$SUBMIT_RELEASE" \
dry_run:"$DRY_RUN"
- name: Enable Publish Github Release Workflow
if: ${{ steps.publish.conclusion == 'success' }}

View File

@ -452,11 +452,26 @@ platform :ios do |options|
desc "Submit iOS app to the App Store"
lane :release_to_production do |options|
changelog = options[:changelog]
changelog = options[:changelog] || "Bug fixes and improvements"
is_dry_run = options[:dry_run] == "true" || options[:dry_run] == true
formatted_changelog = changelog
.split('.')
.map(&:strip)
.reject(&:empty?)
.map { |item| "• #{item.gsub(/\A(?:•|\u2022)\s*/, '')}" }
.join("\n")
auth_locales = ["en-US"]
pw_manager_locales = ["ca", "zh-Hans", "zh-Hant", "hr", "cs", "da", "nl-NL", "en-US", "fi", "fr-FR", "de-DE", "id", "it", "ja", "ko", "no", "pl", "pt-PT", "pt-BR", "ro", "ru", "sk", "es-ES", "es-MX", "sv", "tr", "uk", "vi"]
metadata_path = options[:metadata_path]
if is_dry_run
UI.header("🧪 DRY RUN: Testing iOS App Store submission")
else
UI.header("🚀 Publishing iOS app to App Store")
end
if options[:app_identifier] == "com.bitwarden.authenticator"
locales = auth_locales
else
@ -466,7 +481,7 @@ platform :ios do |options|
locales.each do |locale|
dir = "#{metadata_path}/#{locale}"
FileUtils.mkdir_p(dir)
File.write("#{dir}/release_notes.txt", changelog)
File.write("#{dir}/release_notes.txt", formatted_changelog)
end
notes = locales.each_with_object({}) do |locale, hash|
@ -478,6 +493,16 @@ platform :ios do |options|
end
end
if is_dry_run
UI.important("🧪 DRY RUN MODE - Skipping actual App Store Connect submission")
UI.message("✅ Validation passed")
UI.message("✅ Release notes prepared for #{locales.count} locales")
UI.message("✅ Release notes: ")
UI.message("#{formatted_changelog}")
UI.success("🎯 DRY RUN COMPLETE - Everything looks ready for production!")
next # ← EXITS HERE in dry run
end
deliver(
force: true,
app_identifier: options[:app_identifier],