Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Submit apps to App Store review #164

Merged
merged 43 commits into from
Nov 26, 2021
Merged
Changes from 1 commit
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
c9b2ce7
Extract app store version submission actions into separate action group
priitlatt Nov 9, 2021
e2d61b6
Add action to create new app store version
priitlatt Nov 10, 2021
4944b2c
Support App Store version parameters from submit to review action
priitlatt Nov 10, 2021
b5a7fdc
Include app store review submission as publishing subaction
priitlatt Nov 11, 2021
661b50b
Add more options to ASC publishing
priitlatt Nov 12, 2021
ef3d013
Fix tests
priitlatt Nov 12, 2021
df7f4f5
Add test for App Store submit from publish action
priitlatt Nov 12, 2021
26f7b88
Reuse arguments from subactions to publish action
priitlatt Nov 15, 2021
e52388d
Fix TestFlight and App Store options
priitlatt Nov 15, 2021
23cea07
Use custom argument groups in docs
priitlatt Nov 15, 2021
3822fa9
Adjust custom argument groups descriptions in docs
priitlatt Nov 15, 2021
c36b75b
Bump version
priitlatt Nov 16, 2021
5359ece
Accept build filters in 'app-store-connect apps builds'
priitlatt Nov 17, 2021
8a5394b
Define missing attribute
priitlatt Nov 17, 2021
e699542
Accept strings for build version number argument
priitlatt Nov 17, 2021
5255235
Log processing message only in case build is still being processed
priitlatt Nov 17, 2021
2c88427
Allow using multiple values for single filter
priitlatt Nov 17, 2021
ee340d6
Add action to get build's app store version
priitlatt Nov 17, 2021
8000b25
Add API client method and CLI action to modify App Store version
priitlatt Nov 17, 2021
bb32647
Use existing app store version for submission if possible
priitlatt Nov 17, 2021
a218e65
Make platform optional for 'app-store-connect publish' action
priitlatt Nov 18, 2021
1b7c783
Update docs
priitlatt Nov 19, 2021
3ec48a2
Format logs
priitlatt Nov 22, 2021
604ffd0
Rename CliActionParserBuilder to ArgumentParserBuilder
priitlatt Nov 22, 2021
a22c210
Remove pretty_value method from ResourceEnum
priitlatt Nov 22, 2021
0b9e635
Add test and docstring for Argument.with_custom_argument_group
priitlatt Nov 22, 2021
d25afa7
Reformat publish_action
priitlatt Nov 22, 2021
d62dae1
Make AppStoreVersions.read_build return type optional
priitlatt Nov 22, 2021
7a917ea
Update docstring for 'create_app_store_version'
priitlatt Nov 22, 2021
0a050a1
Add changelog
priitlatt Nov 22, 2021
72a94f1
Update test
priitlatt Nov 22, 2021
e2c0d11
Fix error message when using --exclude and --not-exclude together
priitlatt Nov 23, 2021
7a8eefb
Rename CommonArgumentTypes.iso_8601_date to CommonArgumentTypes.iso_8…
priitlatt Nov 23, 2021
34aaf3d
Update descriptions for --expired and --not-expired flags
priitlatt Nov 23, 2021
1739d05
Fix updating existing app store version
priitlatt Nov 23, 2021
48532be
Merge branch 'master' of github.com:codemagic-ci-cd/cli-tools into fe…
priitlatt Nov 24, 2021
a3e1811
Fix type hint
priitlatt Nov 24, 2021
cb5f34e
Fix tests
priitlatt Nov 24, 2021
4e8ea78
Rename tests/cli/test_argument.py -> tests/cli/argument/test_argument.py
priitlatt Nov 24, 2021
eae68ac
Make ISO 8601 timestamp parsing more relaxed and add tests
priitlatt Nov 24, 2021
16302af
Fix setting earliest release date for App Store version
priitlatt Nov 24, 2021
9a08c20
Add more validation steps to earliest release date
priitlatt Nov 25, 2021
b40f3a8
Fix merge conflict in changelog
priitlatt Nov 25, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Log processing message only in case build is still being processed
  • Loading branch information
priitlatt committed Nov 17, 2021
commit 52552355fa5c672e88faac95ab9db95d4e42f17e
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ def submit_to_testflight(

max_processing_minutes = Types.MaxBuildProcessingWait.resolve_value(max_build_processing_wait)

self.logger.info(Colors.BLUE('\nSubmit uploaded build to TestFlight beta review'))
self.logger.info(Colors.BLUE(f'\nSubmit build {build_id!r} to TestFlight beta review'))

try:
build, app = self.api_client.builds.read_with_include(build_id, App)
Expand Down Expand Up @@ -143,7 +143,7 @@ def submit_to_app_store(

max_processing_minutes = Types.MaxBuildProcessingWait.resolve_value(max_build_processing_wait)

self.logger.info(Colors.BLUE('\nSubmit uploaded build to App Store review'))
self.logger.info(Colors.BLUE(f'\nSubmit build {build_id!r} to App Store review'))

try:
build = self.api_client.builds.read(build_id)
Expand All @@ -169,17 +169,13 @@ def wait_until_build_is_processed(
max_processing_minutes: int,
retry_wait_seconds: int = 30,
) -> Build:
self.logger.info(
Colors.BLUE(
'\nProcessing of builds by Apple can take a while, the timeout for waiting the processing '
'to finish for build %s is set to %d minutes.'),
build.id,
max_processing_minutes,
)

is_processing_message_logged = False
start_waiting = time.time()
while time.time() - start_waiting < max_processing_minutes * 60:
if build.attributes.processingState is BuildProcessingState.PROCESSING:
if not is_processing_message_logged:
is_processing_message_logged = self._log_build_processing_message(build.id, max_processing_minutes)

msg_template = 'Build %s is still being processed on App Store Connect side, waiting %d seconds ' \
'and checking again'
self.logger.info(msg_template, build.id, retry_wait_seconds)
Expand All @@ -200,6 +196,16 @@ def wait_until_build_is_processed(
f'command line option, or {Types.MaxBuildProcessingWait.environment_variable_key} environment variable.'
))

def _log_build_processing_message(self, build_id: ResourceId, max_processing_minutes: int) -> bool:
processing_message_template = (
'\n'
'Processing of builds by Apple can take a while, '
'the timeout for waiting the processing '
'to finish for build %s is set to %d minutes.'
)
self.logger.info(Colors.BLUE(processing_message_template), build_id, max_processing_minutes)
return True

def _assert_app_has_testflight_information(self, app: App):
missing_beta_app_information = self._get_missing_beta_app_information(app)
missing_beta_app_review_information = self._get_missing_beta_app_review_information(app)
Expand Down