2026-07-06 08:36:11 -07:00
|
|
|
default_platform(:ios)
|
|
|
|
|
|
|
|
|
|
platform :ios do
|
2026-07-27 17:30:02 -07:00
|
|
|
desc "Build a release tag and upload it to TestFlight"
|
|
|
|
|
lane :beta do
|
|
|
|
|
setup_ci
|
2026-07-06 08:36:11 -07:00
|
|
|
|
2026-07-27 17:30:02 -07:00
|
|
|
match(type: "appstore")
|
2026-07-06 08:36:11 -07:00
|
|
|
|
2026-07-27 17:30:02 -07:00
|
|
|
tag = ENV.fetch("GITHUB_REF_NAME")
|
|
|
|
|
version = tag[%r{\A(?:release/ios/v|Attractor-)(\d+(?:\.\d+){1,2})\z}, 1]
|
|
|
|
|
UI.user_error!("Expected a tag like release/ios/v4.2 or Attractor-4.2; got #{tag.inspect}") unless version
|
2026-07-11 13:16:13 -07:00
|
|
|
|
2026-07-27 17:30:02 -07:00
|
|
|
build_number = ENV.fetch("GITHUB_RUN_NUMBER")
|
|
|
|
|
UI.user_error!("GITHUB_RUN_NUMBER must be a positive integer") unless build_number.match?(/\A[1-9]\d*\z/)
|
2026-07-06 08:36:11 -07:00
|
|
|
|
2026-07-27 17:30:02 -07:00
|
|
|
update_info_plist(
|
|
|
|
|
plist_path: "App/Supporting Files/Info.plist",
|
|
|
|
|
block: proc do |plist|
|
|
|
|
|
plist["CFBundleShortVersionString"] = version
|
|
|
|
|
plist["CFBundleVersion"] = build_number
|
|
|
|
|
end
|
2026-07-06 08:36:11 -07:00
|
|
|
)
|
|
|
|
|
|
2026-07-27 17:30:02 -07:00
|
|
|
api_key = app_store_connect_api_key(
|
|
|
|
|
key_id: ENV.fetch("ASC_KEY_ID"),
|
|
|
|
|
issuer_id: ENV.fetch("ASC_ISSUER_ID"),
|
|
|
|
|
key_content: ENV.fetch("ASC_KEY"),
|
|
|
|
|
is_key_content_base64: true
|
2026-07-06 08:36:11 -07:00
|
|
|
)
|
|
|
|
|
|
2026-07-27 17:30:02 -07:00
|
|
|
build_app(scheme: "Attractor")
|
|
|
|
|
|
2026-07-06 08:36:11 -07:00
|
|
|
upload_to_testflight(
|
|
|
|
|
api_key: api_key,
|
2026-07-27 17:30:02 -07:00
|
|
|
skip_waiting_for_build_processing: true,
|
|
|
|
|
uses_non_exempt_encryption: false
|
2026-07-06 08:36:11 -07:00
|
|
|
)
|
|
|
|
|
end
|
|
|
|
|
end
|