mirror of
https://github.com/aspnet/JavaScriptServices.git
synced 2025-12-22 17:47:53 +00:00
Update ASP.NET build scripts
This commit is contained in:
42
build.cmd
42
build.cmd
@@ -1,40 +1,2 @@
|
|||||||
@echo off
|
@ECHO OFF
|
||||||
cd %~dp0
|
PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0build.ps1' %*; exit $LASTEXITCODE"
|
||||||
|
|
||||||
SETLOCAL
|
|
||||||
SET NUGET_VERSION=latest
|
|
||||||
SET CACHED_NUGET=%LocalAppData%\NuGet\nuget.%NUGET_VERSION%.exe
|
|
||||||
SET BUILDCMD_KOREBUILD_VERSION=
|
|
||||||
SET BUILDCMD_DNX_VERSION=
|
|
||||||
|
|
||||||
IF EXIST %CACHED_NUGET% goto copynuget
|
|
||||||
echo Downloading latest version of NuGet.exe...
|
|
||||||
IF NOT EXIST %LocalAppData%\NuGet md %LocalAppData%\NuGet
|
|
||||||
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest 'https://dist.nuget.org/win-x86-commandline/%NUGET_VERSION%/nuget.exe' -OutFile '%CACHED_NUGET%'"
|
|
||||||
|
|
||||||
:copynuget
|
|
||||||
IF EXIST .nuget\nuget.exe goto restore
|
|
||||||
md .nuget
|
|
||||||
copy %CACHED_NUGET% .nuget\nuget.exe > nul
|
|
||||||
|
|
||||||
:restore
|
|
||||||
IF EXIST packages\Sake goto getdnx
|
|
||||||
IF "%BUILDCMD_KOREBUILD_VERSION%"=="" (
|
|
||||||
.nuget\nuget.exe install KoreBuild -ExcludeVersion -o packages -nocache -pre
|
|
||||||
) ELSE (
|
|
||||||
.nuget\nuget.exe install KoreBuild -version %BUILDCMD_KOREBUILD_VERSION% -ExcludeVersion -o packages -nocache -pre
|
|
||||||
)
|
|
||||||
.nuget\NuGet.exe install Sake -ExcludeVersion -Source https://www.nuget.org/api/v2/ -Out packages
|
|
||||||
|
|
||||||
:getdnx
|
|
||||||
IF "%BUILDCMD_DNX_VERSION%"=="" (
|
|
||||||
SET BUILDCMD_DNX_VERSION=latest
|
|
||||||
)
|
|
||||||
IF "%SKIP_DNX_INSTALL%"=="" (
|
|
||||||
CALL packages\KoreBuild\build\dnvm install %BUILDCMD_DNX_VERSION% -runtime CoreCLR -arch x86 -alias default
|
|
||||||
CALL packages\KoreBuild\build\dnvm install default -runtime CLR -arch x86 -alias default
|
|
||||||
) ELSE (
|
|
||||||
CALL packages\KoreBuild\build\dnvm use default -runtime CLR -arch x86
|
|
||||||
)
|
|
||||||
|
|
||||||
packages\Sake\tools\Sake.exe -I packages\KoreBuild\build -f makefile.shade %*
|
|
||||||
67
build.ps1
Normal file
67
build.ps1
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
||||||
|
function DownloadWithRetry([string] $url, [string] $downloadLocation, [int] $retries)
|
||||||
|
{
|
||||||
|
while($true)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Invoke-WebRequest $url -OutFile $downloadLocation
|
||||||
|
break
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
$exceptionMessage = $_.Exception.Message
|
||||||
|
Write-Host "Failed to download '$url': $exceptionMessage"
|
||||||
|
if ($retries -gt 0) {
|
||||||
|
$retries--
|
||||||
|
Write-Host "Waiting 10 seconds before retrying. Retries left: $retries"
|
||||||
|
Start-Sleep -Seconds 10
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$exception = $_.Exception
|
||||||
|
throw $exception
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cd $PSScriptRoot
|
||||||
|
|
||||||
|
$repoFolder = $PSScriptRoot
|
||||||
|
$env:REPO_FOLDER = $repoFolder
|
||||||
|
|
||||||
|
$koreBuildZip="https://github.com/aspnet/KoreBuild/archive/dev.zip"
|
||||||
|
if ($env:KOREBUILD_ZIP)
|
||||||
|
{
|
||||||
|
$koreBuildZip=$env:KOREBUILD_ZIP
|
||||||
|
}
|
||||||
|
|
||||||
|
$buildFolder = ".build"
|
||||||
|
$buildFile="$buildFolder\KoreBuild.ps1"
|
||||||
|
|
||||||
|
if (!(Test-Path $buildFolder)) {
|
||||||
|
Write-Host "Downloading KoreBuild from $koreBuildZip"
|
||||||
|
|
||||||
|
$tempFolder=$env:TEMP + "\KoreBuild-" + [guid]::NewGuid()
|
||||||
|
New-Item -Path "$tempFolder" -Type directory | Out-Null
|
||||||
|
|
||||||
|
$localZipFile="$tempFolder\korebuild.zip"
|
||||||
|
|
||||||
|
DownloadWithRetry -url $koreBuildZip -downloadLocation $localZipFile -retries 6
|
||||||
|
|
||||||
|
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||||
|
[System.IO.Compression.ZipFile]::ExtractToDirectory($localZipFile, $tempFolder)
|
||||||
|
|
||||||
|
New-Item -Path "$buildFolder" -Type directory | Out-Null
|
||||||
|
copy-item "$tempFolder\**\build\*" $buildFolder -Recurse
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
if (Test-Path $tempFolder) {
|
||||||
|
Remove-Item -Recurse -Force $tempFolder
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&"$buildFile" $args
|
||||||
79
build.sh
79
build.sh
@@ -1,43 +1,46 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
repoFolder="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
cd $repoFolder
|
||||||
|
|
||||||
if test `uname` = Darwin; then
|
koreBuildZip="https://github.com/aspnet/KoreBuild/archive/dev.zip"
|
||||||
cachedir=~/Library/Caches/KBuild
|
if [ ! -z $KOREBUILD_ZIP ]; then
|
||||||
else
|
koreBuildZip=$KOREBUILD_ZIP
|
||||||
if [ -z $XDG_DATA_HOME ]; then
|
fi
|
||||||
cachedir=$HOME/.local/share
|
|
||||||
else
|
buildFolder=".build"
|
||||||
cachedir=$XDG_DATA_HOME;
|
buildFile="$buildFolder/KoreBuild.sh"
|
||||||
|
|
||||||
|
if test ! -d $buildFolder; then
|
||||||
|
echo "Downloading KoreBuild from $koreBuildZip"
|
||||||
|
|
||||||
|
tempFolder="/tmp/KoreBuild-$(uuidgen)"
|
||||||
|
mkdir $tempFolder
|
||||||
|
|
||||||
|
localZipFile="$tempFolder/korebuild.zip"
|
||||||
|
|
||||||
|
retries=6
|
||||||
|
until (wget -O $localZipFile $koreBuildZip 2>/dev/null || curl -o $localZipFile --location $koreBuildZip 2>/dev/null)
|
||||||
|
do
|
||||||
|
echo "Failed to download '$koreBuildZip'"
|
||||||
|
if [ "$retries" -le 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
retries=$((retries - 1))
|
||||||
|
echo "Waiting 10 seconds before retrying. Retries left: $retries"
|
||||||
|
sleep 10s
|
||||||
|
done
|
||||||
|
|
||||||
|
unzip -q -d $tempFolder $localZipFile
|
||||||
|
|
||||||
|
mkdir $buildFolder
|
||||||
|
cp -r $tempFolder/**/build/** $buildFolder
|
||||||
|
|
||||||
|
chmod +x $buildFile
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
if test ! -d $tempFolder; then
|
||||||
|
rm -rf $tempFolder
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
mkdir -p $cachedir
|
|
||||||
nugetVersion=latest
|
|
||||||
cachePath=$cachedir/nuget.$nugetVersion.exe
|
|
||||||
|
|
||||||
url=https://dist.nuget.org/win-x86-commandline/$nugetVersion/nuget.exe
|
$buildFile -r $repoFolder "$@"
|
||||||
|
|
||||||
if test ! -f $cachePath; then
|
|
||||||
wget -O $cachePath $url 2>/dev/null || curl -o $cachePath --location $url /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test ! -e .nuget; then
|
|
||||||
mkdir .nuget
|
|
||||||
cp $cachePath .nuget/nuget.exe
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test ! -d packages/Sake; then
|
|
||||||
mono .nuget/nuget.exe install KoreBuild -ExcludeVersion -o packages -nocache -pre
|
|
||||||
mono .nuget/nuget.exe install Sake -ExcludeVersion -Source https://www.nuget.org/api/v2/ -Out packages
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! type dnvm > /dev/null 2>&1; then
|
|
||||||
source packages/KoreBuild/build/dnvm.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! type dnx > /dev/null 2>&1 || [ -z "$SKIP_DNX_INSTALL" ]; then
|
|
||||||
dnvm install latest -runtime coreclr -alias default
|
|
||||||
dnvm install default -runtime mono -alias default
|
|
||||||
else
|
|
||||||
dnvm use default -runtime mono
|
|
||||||
fi
|
|
||||||
|
|
||||||
mono packages/Sake/tools/Sake.exe -I packages/KoreBuild/build -f makefile.shade "$@"
|
|
||||||
Reference in New Issue
Block a user