actions / setup-dotnet

Set up your GitHub Actions workflow with a specific version of the .NET core sdk
MIT License
919 stars 454 forks source link

Download is slow in some countries when CDN is enabled #450

Open JohnnyZhang0628 opened 10 months ago

JohnnyZhang0628 commented 10 months ago

Description: Hello,I’m from china.I found download .net version from https://[dotnetcli.azureedge.net/dotnet/release-metadata/releases-index.json](https://dotnetcli.azureedge.net/dotnet/release-metadata/releases-index.json). For example .net 6 Url is https://[dotnetcli.blob.core.windows.net/dotnet/release-metadata/6.0/releases.json](https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/6.0/releases.json) image But install.sh is https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.413/dotnet-sdk-6.0.413-linux-x64.tar.gz not than https://download.visualstudio.microsoft.com/download/pr/66b8d73b-a371-4208-97f7-80b2dc55dfac/9cc37d50e7f83a0782b80ce8fbb8d935/dotnet-sdk-6.0.413-linux-musl-x64.tar.gz. I download the first url speed 20k/s,download second url speed 5M/s

Justification: image download speed in 1 minute

Are you willing to submit a PR?

marko-zivic-93 commented 10 months ago

Hello @JohnnyZhang0628, Thank you for letting us know about this feature request. We will investigate and come back as soon as we have some relevant feedback.

IvanZosimov commented 10 months ago

Hi, @JohnnyZhang0628 👋 The install.sh script downloads .NET from the https://dotnetcli.azureedge.net because it's the address of the CDN (you can read more about it here). Generally its purpose is to speed up the download. How long do you face this situation, is it a constant problem?

JohnnyZhang0628 commented 10 months ago

Hi, @JohnnyZhang0628 👋 The install.sh script downloads .NET from the https://dotnetcli.azureedge.net because it's the address of the CDN (you can read more about it here). Generally its purpose is to speed up the download. How long do you face this situation, is it a constant problem?

@IvanZosimov Thanks reply.It's last a week.The CDN Url not apply for china.Now i try to write my script to download .net6.

IvanZosimov commented 10 months ago

@JohnnyZhang0628, thanks for clarification, we weren't aware about such issue. I'd keep the issue as a feature request and see if it gets more attention from other customers.

vmal-altium commented 10 months ago

Same situation if running from Europe for the last few weeks. Downloads can take 20+ minutes if succeeding at all, while US downloads complete in seconds.

JohnnyZhang0628 commented 10 months ago

Same situation if running from Europe for the last few weeks. Downloads can take 20+ minutes if succeeding at all, while US downloads complete in seconds. @vmal-altium I use this script solved the question.


wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
apt-get update  && apt-get install -y dotnet-sdk-6.0
vmal-altium commented 10 months ago

Well, I ended up temporarily hardcoding better IPs for the DNS resolution of the CDN address... It seems to be more of a Microsoft/Edgio issue with picking a server close by, rather than this GitHub action code (api.nuget.org shows similar issues).

VAllens commented 8 months ago

Just add one -AzureFeed(--azure-feed) parameter, which is already supported by dotnet-install.sh/ps1.

After the user enters this parameter, replace it.

dotnet-install.ps1: .PARAMETER AzureFeed dotnet-install.sh: --azure-feed|-[Aa]zure[Ff]eed)