codemagic-ci-cd / cli-tools

Various utilities to managing Android and iOS app builds, code signing, and deployment.
https://codemagic.io/start/
GNU General Public License v3.0
245 stars 42 forks source link

Fix type for Firebase App Distribution Release's build version #397

Closed priitlatt closed 6 months ago

priitlatt commented 6 months ago

According to Firebase API docs the type of buildVersion attrribute on Release is string, but currently it is expected to be an integer: https://github.com/codemagic-ci-cd/cli-tools/blob/3d732aad70745f79dfdc68b2abb360c0f95bcc28/src/codemagic/google/resources/release.py#L18 and is force-cast into one: https://github.com/codemagic-ci-cd/cli-tools/blob/3d732aad70745f79dfdc68b2abb360c0f95bcc28/src/codemagic/google/resources/release.py#L28-L29

Of course this results in a ValueError.

See the stacktrace ```python Traceback (most recent call last): File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/cli/cli_app.py", line 243, in invoke_cli CliApp._running_app._invoke_action(args) File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/cli/cli_app.py", line 184, in _invoke_action return cli_action(**action_args) File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/cli/action.py", line 83, in wrapper return func(self, *args, **kwargs) File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/tools/firebase_app_distribution/actions/get_latest_build_version_action.py", line 23, in get_latest_build_version releases = self.client.releases.list(app_identifier, limit=1) File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/google/resource_managers/mixins/listing_manager_mixin.py", line 70, in list resources.extend(self.resource_type(**item) for item in response_items) File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/google/resource_managers/mixins/listing_manager_mixin.py", line 70, in resources.extend(self.resource_type(**item) for item in response_items) File "", line 11, in __init__ File "/Users/builder/.pyenv/versions/3.8.13/lib/python3.8/site-packages/codemagic/google/resources/release.py", line 29, in __post_init__ self.buildVersion = int(self.buildVersion) ValueError: invalid literal for int() with base 10: '1.0.3' ```

Remove the unnecessary type conversion and retain the attribute as a str instead.

Updated actions: