From 15f9808a686e1f87e41ec28f669aa9689f4b0d60 Mon Sep 17 00:00:00 2001 From: Christian Helmich Date: Tue, 25 Apr 2023 13:00:17 +0200 Subject: [PATCH] feature: add .NET installation (#90) * file: add .NET installation script dotnet.sh * feat: add dotnet installation to custom image * feat: add dotnet to build matrix * Prepend `PATH` correctly --- .github/workflows/build-ubuntu.yml | 1 + linux/ubuntu/scripts/custom.sh | 1 + linux/ubuntu/scripts/dotnet.sh | 31 +++++++++++++++++++ .../ubuntu/scripts/helpers/etc-environment.sh | 3 +- 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100755 linux/ubuntu/scripts/dotnet.sh diff --git a/.github/workflows/build-ubuntu.yml b/.github/workflows/build-ubuntu.yml index 2daa4b9..c87ff15 100644 --- a/.github/workflows/build-ubuntu.yml +++ b/.github/workflows/build-ubuntu.yml @@ -220,6 +220,7 @@ jobs: - js - pwsh - rust + - dotnet - custom steps: - name: Login to GitHub Container Registry diff --git a/linux/ubuntu/scripts/custom.sh b/linux/ubuntu/scripts/custom.sh index b98faca..399a001 100755 --- a/linux/ubuntu/scripts/custom.sh +++ b/linux/ubuntu/scripts/custom.sh @@ -39,6 +39,7 @@ scripts=( js rust vcpkg + dotnet ) for SCRIPT in "${scripts[@]}"; do diff --git a/linux/ubuntu/scripts/dotnet.sh b/linux/ubuntu/scripts/dotnet.sh new file mode 100755 index 0000000..24bf3ba --- /dev/null +++ b/linux/ubuntu/scripts/dotnet.sh @@ -0,0 +1,31 @@ +#!/bin/bash -e +################################################################################ +## File: dotnet.sh +## Desc: Installs dotnet CLI +## Must be run as non-root user after homebrew +################################################################################ + +# Install dotnet CLI +. /imagegeneration/installers/helpers/etc-environment.sh + +printf "\n\tšŸ‹ Installing .NET šŸ‹\t\n" +#apt-get install -y dotnet-sdk-7.0 dotnet-sdk-6.0 dotnet-runtime-7.0 dotnet-runtime-6.0 +curl -LO https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh +cat ./dotnet-install.sh +bash ./dotnet-install.sh --install-dir /opt/hostedtoolcache/dotnet --no-path --channel STS # net 7.0 +bash ./dotnet-install.sh --install-dir /opt/hostedtoolcache/dotnet --no-path --channel LTS # net 6.0 +rm ./dotnet-install.sh +export DOTNET_ROOT=/opt/hostedtoolcache/dotnet +export PATH=$PATH:$DOTNET_ROOT +{ + echo "DOTNET_ROOT=${DOTNET_ROOT}" +} | tee -a /etc/environment + +prependEtcEnvironmentPath "${DOTNET_ROOT}" + +which dotnet +dotnet --version +dotnet --info +#dotnet --list-sdks +#dotnet --list-runtimes +printf "\n\tšŸ‹ Installed .NET šŸ‹\t\n" diff --git a/linux/ubuntu/scripts/helpers/etc-environment.sh b/linux/ubuntu/scripts/helpers/etc-environment.sh index b3bb50a..04daa5d 100755 --- a/linux/ubuntu/scripts/helpers/etc-environment.sh +++ b/linux/ubuntu/scripts/helpers/etc-environment.sh @@ -26,7 +26,8 @@ function replaceEtcEnvironmentVariable { variable_value="$2" # modify /etc/environemnt in place by replacing a string that begins with variable_name - sudo sed -i -e "s%^${variable_name}=.*$%${variable_name}=\"${variable_value}\"%" /etc/environment + # removed quotes for the docker env metadata reader + sudo sed -i -e "s%^${variable_name}=.*$%${variable_name}=${variable_value}%" /etc/environment } function setEtcEnvironmentVariable {