We hooked up crowdin to our build-system to pull translations into our jar on demand. However, we’ve noticed that crowdin regularly fails our builds due to:
Execution failed for task ‘:crowdinBuildProjectTranslation’. org.zaproxy.gradle.crowdin.CrowdinPluginException: An error occurred while accessing the Crowdin API: HttpException.Error(code=409, message=Another build is currently in progress. Please wait until it’s finished.)
The plugin should probably just wait until the build is finished instead of throwing an exception. (or at least offer it as an option). Gradle doesn’t allow a retry on our side.
Hello @Raycoms interesting case. I have an assumption that the plugin run to fast and previous build just get stuck, that’s why the error occurs. Have you tried build via User Interface? Is there the same behavior? Maybe account used for build run has tokens expired or so
We run concurrent builds sometimes, if one enters the crowdin phase while the other is currently in it, the second one crashes out instead of just waiting
I guess you would need to update the integration, because running multiple builds in 1 time would cause crashes. Try adding “get build status” request.
In overall, in my case, bot runs the build and then in 30 seconds checks the status, if finished, than next CI step is triggered, if not, that wait for 30 seconds more and checks status once more.
Yes, that is certainly an option, but since crowdin already got the waiting loop for those builds in their plugin, they could extend this to not just waiting for local builds, but for all of them.
As far as I know, the Gradle plugin is a community tool maintained not by our internal team. We have an API call that cancels the build, but the plugin needs to be updated in order to use it. API v2 Reference (Enterprise)