Skip to content

Use lists of URLS instaead of signle URL template - #1084

Merged
ekharkunov merged 2 commits into
devfrom
sdk-urls-per-platform-lists
Sep 28, 2026
Merged

ekharkunov merged 2 commits into
devfrom
sdk-urls-per-platform-lists

Conversation

@ekharkunov

Copy link
Copy Markdown
Contributor

No description provided.

@ekharkunov
ekharkunov requested a review from JCash September 28, 2026 10:45

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f818169516

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +190 to +192
// mark sdk as found for download
sdkFound = true;
break;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Continue to fallback after SDK download failures

When a URL returns 200 to HEAD but its subsequent download, checksum lookup, or verification fails, this new break commits to that URL and the retry loop only retries the same url; it never reaches the later configured URL patterns. With the new stable URL configured ahead of the hash-specific archive URL, a stale or partially unavailable stable artifact can therefore make SDK acquisition fail even though the fallback archive is usable. Continue through the remaining patterns after a failed GET or verification attempt.

Useful? React with 👍 / 👎.

try (ClientHttpResponse response = doRequestWithRedirects(url, HttpMethod.GET, configuration.getMaxRedirectCount())) {
HttpStatusCode responseCode = response.getStatusCode();
if (responseCode != HttpStatus.OK) {
LOGGER.info("The given sdk does not exist: {} {}", url, responseCode.toString());
break;
}
} catch(IOException|ParseException exc) {
LOGGER.error(String.format("Error during loading sdk mappings for %s", hash), exc);

@JCash JCash left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm!

@github-actions

Copy link
Copy Markdown

Summary - Extender code coverage report

Summary
Generated on: 09/28/2026 - 11:03:58
Coverage date: 09/28/2026 - 11:03:26
Parser: JaCoCo
Assemblies: 16
Classes: 107
Files: 107
Line coverage: 49.2% (4064 of 8260)
Covered lines: 4064
Uncovered lines: 4196
Coverable lines: 8260
Total lines: 16998
Branch coverage: 52.3% (1904 of 3638)
Covered branches: 1904
Total branches: 3638
Method coverage: Feature is only available for sponsors
Tag: 290_36413268861

Coverage

com/defold/extender - 43.6%
Name Line Branch
com/defold/extender 43.6% 50.5%
com/defold/extender/AppManifestConfiguration 100%
com/defold/extender/AppManifestPlatformConfig 100%
com/defold/extender/AsyncBuilder 0% 0%
com/defold/extender/BuilderConstants 80%
com/defold/extender/BuildProgressController 93.1% 91.6%
com/defold/extender/Configuration 100%
com/defold/extender/Extender 14.5% 14.4%
com/defold/extender/ExtenderApplication 0%
com/defold/extender/ExtenderBuildState 63.1% 57.1%
com/defold/extender/ExtenderConst 0%
com/defold/extender/ExtenderController 17.4% 19.7%
com/defold/extender/ExtenderException 100%
com/defold/extender/ExtenderUtil 72.2% 66.9%
com/defold/extender/ExtenderYamlSafeConstructor 100%
com/defold/extender/ExtensionManifestValidator 95.4% 89.4%
com/defold/extender/ManifestConfiguration 100%
com/defold/extender/ManifestPlatformConfig 100%
com/defold/extender/PlatformConfig 100%
com/defold/extender/PlatformNotSupportedException 0%
com/defold/extender/R8Builder 88.1% 77.6%
com/defold/extender/R8Configuration 93.5% 50%
com/defold/extender/R8RulePolicy 76% 70.4%
com/defold/extender/RequestErrorAdvice 89.6% 75%
com/defold/extender/SandboxedPath 72.5% 71.4%
com/defold/extender/TemplateExecutor 39.1% 50%
com/defold/extender/Timer 100%
com/defold/extender/TreePrinter 0% 0%
com/defold/extender/Version 0%
com/defold/extender/VersionNotSupportedException 0%
com/defold/extender/WebSecurityConfig 0% 0%
com/defold/extender/WhitelistConfig 100%
com/defold/extender/ZipUtils 80.3% 69.2%
com/defold/extender/builders - 0%
Name Line Branch
com/defold/extender/builders 0% 0%
com/defold/extender/builders/CSharpBuilder 0% 0%
com/defold/extender/cache - 32.8%
Name Line Branch
com/defold/extender/cache 32.8% 15.6%
com/defold/extender/cache/CacheEntry 64.7% 75%
com/defold/extender/cache/CacheKeyGenerator 81.8% 100%
com/defold/extender/cache/DataCache
com/defold/extender/cache/DataCacheFactory 5% 0%
com/defold/extender/cache/DummyDataCache 80%
com/defold/extender/cache/GCPDataCache 0% 0%
com/defold/extender/cache/LocalDiskDataCache 66.6% 0%
com/defold/extender/cache/info - 100%
Name Line Branch
com/defold/extender/cache/info 100% ****
com/defold/extender/cache/info/CacheInfoFileParser 100%
com/defold/extender/cache/info/CacheInfoFileWriter 100%
com/defold/extender/cache/info/CacheInfoWrapper 100%
com/defold/extender/jetty - 82.6%
Name Line Branch
com/defold/extender/jetty 82.6% 52.9%
com/defold/extender/jetty/ExtenderJettyErrorHandler 75.8% 36.3%
com/defold/extender/jetty/JettyRequestEventsHandler 86.6% 83.3%
com/defold/extender/jetty/JettyServerConfiguration 100%
com/defold/extender/log - 40%
Name Line Branch
com/defold/extender/log 40% 60%
com/defold/extender/log/ExtenderLogEnhancer 0% 0%
com/defold/extender/log/ExtenderLogEnhancerConfiguration 0% 0%
com/defold/extender/log/LogSanitizer 100% 100%
com/defold/extender/log/Markers 80%
com/defold/extender/metrics - 37.5%
Name Line Branch
com/defold/extender/metrics 37.5% ****
com/defold/extender/metrics/MetricsWriter 37.5%
com/defold/extender/process - 73.4%
Name Line Branch
com/defold/extender/process 73.4% 77.2%
com/defold/extender/process/CommandLineTokenizer 97.7% 92.6%
com/defold/extender/process/ProcessExecutor 64.3% 61.1%
com/defold/extender/process/ProcessUtils 0% 0%
com/defold/extender/progress - 90.6%
Name Line Branch
com/defold/extender/progress 90.6% 81.6%
com/defold/extender/progress/BuildProgressEvent 100%
com/defold/extender/progress/BuildProgressService 90.2% 80.5%
com/defold/extender/progress/BuildStage 100% 100%
com/defold/extender/progress/ProgressReporter 40%
com/defold/extender/remote - 88.9%
Name Line Branch
com/defold/extender/remote 88.9% 67.2%
com/defold/extender/remote/RemoteBuildException 100%
com/defold/extender/remote/RemoteEngineBuilder 93.2% 71.8%
com/defold/extender/remote/RemoteHostConfiguration 100%
com/defold/extender/remote/RemoteInstanceConfig 100%
com/defold/extender/remote/RemoteProgressRelay 76.7% 60.8%
com/defold/extender/services - 58.4%
Name Line Branch
com/defold/extender/services 58.4% 49%
com/defold/extender/services/DataCacheService 79.8% 61.9%
com/defold/extender/services/DefoldSdkService 75.5% 61.7%
com/defold/extender/services/DefoldSdkServiceConfiguration 90.9% 75%
com/defold/extender/services/GCPInstanceService 1.1% 0%
com/defold/extender/services/GradleArtifact 100%
com/defold/extender/services/GradleService 0%
com/defold/extender/services/GradleServiceInterface
com/defold/extender/services/HealthReporterService 82.4% 55.2%
com/defold/extender/services/MockGradleService 0%
com/defold/extender/services/RealGradleService 55.9% 40%
com/defold/extender/services/ResolvedNativeDeps 0%
com/defold/extender/services/UserUpdateService 0% 0%
com/defold/extender/services/cocoapods - 53%
Name Line Branch
com/defold/extender/services/cocoapods 53% 59.2%
com/defold/extender/services/cocoapods/CocoaPodsService 9.4% 20.6%
com/defold/extender/services/cocoapods/CocoaPodsServiceBuildState 21%
com/defold/extender/services/cocoapods/CreateBuildSpecArgs 60.7%
com/defold/extender/services/cocoapods/IConfigParser
com/defold/extender/services/cocoapods/LanguageSet 66.6% 50%
com/defold/extender/services/cocoapods/MainPodfile 20%
com/defold/extender/services/cocoapods/PlatformAndLanguageSet 0% 0%
com/defold/extender/services/cocoapods/PlatformSet 0% 0%
com/defold/extender/services/cocoapods/PlistBuddyWrapper 0% 0%
com/defold/extender/services/cocoapods/PodBuildSpec 81.4% 65.4%
com/defold/extender/services/cocoapods/PodfileParser 94.9% 82.2%
com/defold/extender/services/cocoapods/PodfileParsingException 100%
com/defold/extender/services/cocoapods/PodSpec 60.4% 40%
com/defold/extender/services/cocoapods/PodSpecParser 92.2% 82.2%
com/defold/extender/services/cocoapods/PodUtils 86.5% 78.5%
com/defold/extender/services/cocoapods/ResolvedPods 51.5% 45.6%
com/defold/extender/services/cocoapods/XCConfigParser 94.5% 85.2%
com/defold/extender/services/data - 80.7%
Name Line Branch
com/defold/extender/services/data 80.7% 75%
com/defold/extender/services/data/DefoldSdk 87.5% 75%
com/defold/extender/services/data/GCPInstanceState 0%
com/defold/extender/services/spm - 40.7%
Name Line Branch
com/defold/extender/services/spm 40.7% 48.2%
com/defold/extender/services/spm/ResolvedPackages 0% 0%
com/defold/extender/services/spm/SpmBuildOutputParser 91.3% 81.1%
com/defold/extender/services/spm/SpmManifestParser 87.3% 72.1%
com/defold/extender/services/spm/SpmManifestParsingException 100%
com/defold/extender/services/spm/SpmServiceBuildState 0% 0%
com/defold/extender/services/spm/SpmServiceConfiguration 0%
com/defold/extender/services/spm/SwiftPackageManagerService 0% 0%
com/defold/extender/tracing - 21.2%
Name Line Branch
com/defold/extender/tracing 21.2% 25%
com/defold/extender/tracing/ExtenderExecutor 0% 0%
com/defold/extender/tracing/ExtenderTracerInterceptor 100% 100%
com/defold/extender/tracing/TraceIdInResponseServletFilter 0% 0%
com/defold/extender/utils - 18.1%
Name Line Branch
com/defold/extender/utils 18.1% 32.5%
com/defold/extender/utils/FrameworkUtil 0% 0%
com/defold/extender/utils/PodBuildUtil 0% 0%
com/defold/extender/utils/VersionUtil 69.2% 65%

@ekharkunov
ekharkunov merged commit dfdaa60 into dev Sep 28, 2026
5 checks passed
@ekharkunov
ekharkunov deleted the sdk-urls-per-platform-lists branch September 28, 2026 11:13
ekharkunov added a commit that referenced this pull request Sep 28, 2026
* Use lists of URLS instaead of signle URL template

* Fix how env parsed in tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants