Add scripts to install dotnet on windows and ubuntu (#2038)

* Add scripts to install dotnet on windows and ubuntu

* Install dotnet on linux setup

* Move the install to the setup scripts

* Fix slash direction

* typo

* PR comments
This commit is contained in:
Teo Voinea
2022-06-14 10:56:53 -04:00
committed by GitHub
parent 46289a33af
commit dec4285527
4 changed files with 45 additions and 0 deletions

View File

@ -5,6 +5,7 @@
set -ex set -ex
export PATH=$PATH:/onefuzz/bin:/onefuzz/tools/linux:/onefuzz/tools/linux/afl:/onefuzz/tools/linux/radamsa export PATH=$PATH:/onefuzz/bin:/onefuzz/tools/linux:/onefuzz/tools/linux/afl:/onefuzz/tools/linux/radamsa
export DOTNET_ROOT=/onefuzz/tools/dotnet
export ONEFUZZ_TOOLS=/onefuzz/tools export ONEFUZZ_TOOLS=/onefuzz/tools
export ONEFUZZ_ROOT=/onefuzz export ONEFUZZ_ROOT=/onefuzz
export RUST_BACKTRACE=full export RUST_BACKTRACE=full

View File

@ -12,6 +12,8 @@ USER_SETUP="/onefuzz/setup/setup.sh"
TASK_SETUP="/onefuzz/bin/task-setup.sh" TASK_SETUP="/onefuzz/bin/task-setup.sh"
MANAGED_SETUP="/onefuzz/bin/managed.sh" MANAGED_SETUP="/onefuzz/bin/managed.sh"
SCALESET_SETUP="/onefuzz/bin/scaleset-setup.sh" SCALESET_SETUP="/onefuzz/bin/scaleset-setup.sh"
DOTNET_VERSION="6.0.300"
export DOTNET_ROOT=/onefuzz/tools/dotnet
export ONEFUZZ_ROOT=/onefuzz export ONEFUZZ_ROOT=/onefuzz
export LLVM_SYMBOLIZER_PATH=/onefuzz/bin/llvm-symbolizer export LLVM_SYMBOLIZER_PATH=/onefuzz/bin/llvm-symbolizer
@ -26,6 +28,7 @@ mkdir -p /onefuzz/setup
mkdir -p /onefuzz/tools mkdir -p /onefuzz/tools
mkdir -p /onefuzz/etc mkdir -p /onefuzz/etc
mkdir -p /onefuzz/instance-specific-setup mkdir -p /onefuzz/instance-specific-setup
mkdir -p "$DOTNET_ROOT"
echo $1 > /onefuzz/etc/mode echo $1 > /onefuzz/etc/mode
export PATH=$PATH:/onefuzz/bin:/onefuzz/tools/linux:/onefuzz/tools/linux/afl:/onefuzz/tools/linux/radamsa export PATH=$PATH:/onefuzz/bin:/onefuzz/tools/linux:/onefuzz/tools/linux/afl:/onefuzz/tools/linux/radamsa
@ -122,6 +125,27 @@ if type apt > /dev/null 2> /dev/null; then
# Using `llvm-symbolizer` works for clang 8 .. 10. # Using `llvm-symbolizer` works for clang 8 .. 10.
sudo ln -f -s $(which llvm-symbolizer-10) $LLVM_SYMBOLIZER_PATH sudo ln -f -s $(which llvm-symbolizer-10) $LLVM_SYMBOLIZER_PATH
fi fi
# Install dotnet
until sudo apt install -y curl libicu-dev; do
echo "apt failed, sleeping 10s then retrying"
sleep 10
done
echo "downloading dotnet install"
curl --retry 10 -sSL https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh > /dev/null
chmod +x dotnet-install.sh
echo "running dotnet install"
. ./dotnet-install.sh --version "$DOTNET_VERSION" --install-dir "$DOTNET_ROOT" 2>&1 | logger -s -i -t 'onefuzz-dotnet-setup'
rm dotnet-install.sh
echo "install dotnet tools"
pushd "$DOTNET_ROOT"
./dotnet tool install dotnet-dump --tool-path /onefuzz/tools
./dotnet tool install dotnet-coverage --tool-path /onefuzz/tools
./dotnet tool install dotnet-sos --tool-path /onefuzz/tools
popd
fi fi
if [ -d /etc/systemd/system ]; then if [ -d /etc/systemd/system ]; then

View File

@ -6,6 +6,10 @@ $env:ONEFUZZ_ROOT = "C:\onefuzz"
$env:ONEFUZZ_TOOLS = "C:\onefuzz\tools" $env:ONEFUZZ_TOOLS = "C:\onefuzz\tools"
$env:LLVM_SYMBOLIZER_PATH = "llvm-symbolizer" $env:LLVM_SYMBOLIZER_PATH = "llvm-symbolizer"
$env:RUST_LOG = "info" $env:RUST_LOG = "info"
$env:DOTNET_VERSION = "6.0.300"
# Set a session and machine scoped env var
$env:DOTNET_ROOT = "c:\onefuzz\tools\dotnet"
[Environment]::SetEnvironmentVariable("DOTNET_ROOT", $env:DOTNET_ROOT, "Machine")
$logFile = "C:\onefuzz.log" $logFile = "C:\onefuzz.log"
function log ($message) { function log ($message) {
@ -168,3 +172,18 @@ function Install-VCRedist {
Start-Process -FilePath C:\onefuzz\vcredist_x86.exe -ArgumentList "/install /q /norestart" -Wait -WindowStyle Hidden Start-Process -FilePath C:\onefuzz\vcredist_x86.exe -ArgumentList "/install /q /norestart" -Wait -WindowStyle Hidden
log "installing VC Redist: done" log "installing VC Redist: done"
} }
function Install-Dotnet([string]$Version, [string]$InstallDir, [string]$ToolsDir) {
log "Installing dotnet to ${InstallDir}"
Invoke-WebRequest 'https://dot.net/v1/dotnet-install.ps1' -OutFile 'dotnet-install.ps1'
./dotnet-install.ps1 -Version $Version -InstallDir $InstallDir
Remove-Item ./dotnet-install.ps1
log "Installing dotnet: done"
log "Installing dotnet tools to ${ToolsDir}"
Push-Location $InstallDir
./dotnet.exe tool install dotnet-dump --tool-path $ToolsDir
./dotnet.exe tool install dotnet-coverage --tool-path $ToolsDir
./dotnet.exe tool install dotnet-sos --tool-path $ToolsDir
Pop-Location
log "Installing dotnet tools: done"
}

View File

@ -69,6 +69,7 @@ function Install-OnefuzzSetup {
Enable-SSH Enable-SSH
Install-OnBoot Install-OnBoot
Install-VCRedist Install-VCRedist
Install-Dotnet -Version $env:DOTNET_VERSION -InstallDir $env:DOTNET_ROOT -ToolsDir $env:ONEFUZZ_TOOLS
Setup-Silent-Notification Setup-Silent-Notification
log "onefuzz: setup done" log "onefuzz: setup done"
} }