Unverified Commit a88a95e1 authored by Samruddhi Khandale's avatar Samruddhi Khandale Committed by GitHub

Oryx: Update to use .NET 8 (#825)

* Oryx: Update to use .NET 8

* Fix install_prev_dotnet_and_oryx

* fix install_prev_dotnet_and_oryx
parent b08484e7
{ {
"id": "oryx", "id": "oryx",
"version": "1.1.0", "version": "1.2.0",
"name": "Oryx", "name": "Oryx",
"description": "Installs the oryx CLI", "description": "Installs the oryx CLI",
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/oryx", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/oryx",
......
...@@ -74,7 +74,7 @@ install_dotnet_using_apt() { ...@@ -74,7 +74,7 @@ install_dotnet_using_apt() {
echo "Attempting to auto-install dotnet..." echo "Attempting to auto-install dotnet..."
install_from_microsoft_feed=false install_from_microsoft_feed=false
apt_get_update apt_get_update
DOTNET_INSTALLATION_PACKAGE="dotnet7" DOTNET_INSTALLATION_PACKAGE="dotnet8"
apt-get -yq install $DOTNET_INSTALLATION_PACKAGE || install_from_microsoft_feed="true" apt-get -yq install $DOTNET_INSTALLATION_PACKAGE || install_from_microsoft_feed="true"
if [ "${install_from_microsoft_feed}" = "true" ]; then if [ "${install_from_microsoft_feed}" = "true" ]; then
...@@ -82,7 +82,7 @@ install_dotnet_using_apt() { ...@@ -82,7 +82,7 @@ install_dotnet_using_apt() {
curl -sSL ${MICROSOFT_GPG_KEYS_URI} | gpg --dearmor > /usr/share/keyrings/microsoft-archive-keyring.gpg curl -sSL ${MICROSOFT_GPG_KEYS_URI} | gpg --dearmor > /usr/share/keyrings/microsoft-archive-keyring.gpg
echo "deb [arch=${architecture} signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/repos/microsoft-${ID}-${VERSION_CODENAME}-prod ${VERSION_CODENAME} main" > /etc/apt/sources.list.d/microsoft.list echo "deb [arch=${architecture} signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/repos/microsoft-${ID}-${VERSION_CODENAME}-prod ${VERSION_CODENAME} main" > /etc/apt/sources.list.d/microsoft.list
apt-get update -y apt-get update -y
DOTNET_INSTALLATION_PACKAGE="dotnet-sdk-7.0" DOTNET_INSTALLATION_PACKAGE="dotnet-sdk-8.0"
DOTNET_SKIP_FIRST_TIME_EXPERIENCE="true" apt-get install -yq $DOTNET_INSTALLATION_PACKAGE DOTNET_SKIP_FIRST_TIME_EXPERIENCE="true" apt-get install -yq $DOTNET_INSTALLATION_PACKAGE
fi fi
...@@ -132,9 +132,11 @@ if dotnet --version > /dev/null ; then ...@@ -132,9 +132,11 @@ if dotnet --version > /dev/null ; then
DOTNET_BINARY=$(which dotnet) DOTNET_BINARY=$(which dotnet)
fi fi
# Oryx needs to be built with .NET 7 MAJOR_VERSION_ID=$(echo $(dotnet --version) | cut -d . -f 1)
if [[ "${DOTNET_BINARY}" = "" ]] || [[ "$(dotnet --version)" != *"7"* ]] ; then
echo "'dotnet 7' was not detected. Attempting to install .NET 7 to build oryx." # Oryx needs to be built with .NET 8
if [[ "${DOTNET_BINARY}" = "" ]] || [[ $MAJOR_VERSION_ID != "8" ]] ; then
echo "'dotnet 8' was not detected. Attempting to install .NET 8 to build oryx."
install_dotnet_using_apt install_dotnet_using_apt
if ! dotnet --version > /dev/null ; then if ! dotnet --version > /dev/null ; then
......
...@@ -26,9 +26,9 @@ mkdir -p /opt/oryx ...@@ -26,9 +26,9 @@ mkdir -p /opt/oryx
echo "vso-focal" >> /opt/oryx/.imagetype echo "vso-focal" >> /opt/oryx/.imagetype
mkdir -p /opt/dotnet/lts mkdir -p /opt/dotnet/lts
cp -R /usr/local/dotnet/current/dotnet /opt/dotnet/lts cp -R /usr/share/dotnet/dotnet /opt/dotnet/lts
cp -R /usr/local/dotnet/current/LICENSE.txt /opt/dotnet/lts cp -R /usr/share/dotnet/LICENSE.txt /opt/dotnet/lts
cp -R /usr/local/dotnet/current/ThirdPartyNotices.txt /opt/dotnet/lts cp -R /usr/share/dotnet/ThirdPartyNotices.txt /opt/dotnet/lts
# Install platforms with oryx build tool # Install platforms with oryx build tool
check "oryx-install-dotnet-2.1-universal" oryx prep --skip-detection --platforms-and-versions dotnet=2.1.30 check "oryx-install-dotnet-2.1-universal" oryx prep --skip-detection --platforms-and-versions dotnet=2.1.30
......
#!/bin/bash
set -e
# Optional: Import test library
source dev-container-features-test-lib
check "Oryx version" oryx --version
check "Dotnet is not removed if it is not installed by the Oryx Feature" dotnet --version
# Install platforms with oryx build tool
check "oryx-install-dotnet-2.1" oryx prep --skip-detection --platforms-and-versions dotnet=2.1.30
check "dotnet-2-installed-by-oryx" ls /opt/dotnet/ | grep 2.1
check "oryx-install-nodejs-12.22.11" oryx prep --skip-detection --platforms-and-versions nodejs=12.22.11
check "nodejs-12.22.11-installed-by-oryx" ls /opt/nodejs/ | grep 12.22.11
check "oryx-install-php-7.3.25" oryx prep --skip-detection --platforms-and-versions php=7.3.25
check "php-7.3.25-installed-by-oryx" ls /opt/php/ | grep 7.3.25
check "oryx-install-java-12.0.2" oryx prep --skip-detection --platforms-and-versions java=12.0.2
check "java-12.0.2-installed-by-oryx" ls /opt/java/ | grep 12.0.2
# Replicates Oryx's behavior for universal image
mkdir -p /opt/oryx
echo "vso-focal" >> /opt/oryx/.imagetype
mkdir -p /opt/dotnet/lts
cp -R /usr/share/dotnet/dotnet /opt/dotnet/lts
cp -R /usr/share/dotnet/LICENSE.txt /opt/dotnet/lts
cp -R /usr/share/dotnet/ThirdPartyNotices.txt /opt/dotnet/lts
# Install platforms with oryx build tool
check "oryx-install-dotnet-2.1-universal" oryx prep --skip-detection --platforms-and-versions dotnet=2.1.30
check "dotnet-2-installed-by-oryx-universal" ls /opt/dotnet/ | grep 2.1
check "oryx-install-nodejs-12.22.11-universal" oryx prep --skip-detection --platforms-and-versions nodejs=12.22.11
check "nodejs-12.22.11-installed-by-oryx-universal" ls /opt/nodejs/ | grep 12.22.11
check "oryx-install-php-7.3.25-universal" oryx prep --skip-detection --platforms-and-versions php=7.3.25
check "php-7.3.25-installed-by-oryx-universal" ls /opt/php/ | grep 7.3.25
check "oryx-install-java-12.0.2-universal" oryx prep --skip-detection --platforms-and-versions java=12.0.2
check "java-12.0.2-installed-by-oryx-universal" ls /opt/java/ | grep 12.0.2
# Report result
reportResults
...@@ -26,9 +26,9 @@ mkdir -p /opt/oryx ...@@ -26,9 +26,9 @@ mkdir -p /opt/oryx
echo "vso-focal" >> /opt/oryx/.imagetype echo "vso-focal" >> /opt/oryx/.imagetype
mkdir -p /opt/dotnet/lts mkdir -p /opt/dotnet/lts
cp -R /usr/local/dotnet/current/dotnet /opt/dotnet/lts cp -R /usr/share/dotnet/dotnet /opt/dotnet/lts
cp -R /usr/local/dotnet/current/LICENSE.txt /opt/dotnet/lts cp -R /usr/share/dotnet/LICENSE.txt /opt/dotnet/lts
cp -R /usr/local/dotnet/current/ThirdPartyNotices.txt /opt/dotnet/lts cp -R /usr/share/dotnet/ThirdPartyNotices.txt /opt/dotnet/lts
# Install platforms with oryx build tool # Install platforms with oryx build tool
check "oryx-install-dotnet-2.1-universal" oryx prep --skip-detection --platforms-and-versions dotnet=2.1.30 check "oryx-install-dotnet-2.1-universal" oryx prep --skip-detection --platforms-and-versions dotnet=2.1.30
......
...@@ -3,8 +3,18 @@ ...@@ -3,8 +3,18 @@
"image": "ubuntu:focal", "image": "ubuntu:focal",
"features": { "features": {
"dotnet": { "dotnet": {
"version": "7", "version": "8.0",
"installUsingApt": "false" "dotnetRuntimeVersions": "7.0",
"aspNetCoreRuntimeVersions": "7.0"
},
"oryx": {}
}
},
"install_older_dotnet_and_oryx": {
"image": "ubuntu:focal",
"features": {
"dotnet": {
"version": "7.0"
}, },
"oryx": {} "oryx": {}
} }
...@@ -13,8 +23,7 @@ ...@@ -13,8 +23,7 @@
"image": "ubuntu:focal", "image": "ubuntu:focal",
"features": { "features": {
"dotnet": { "dotnet": {
"version": "6", "version": "6.0"
"installUsingApt": "false"
}, },
"oryx": {} "oryx": {}
} }
...@@ -28,8 +37,7 @@ ...@@ -28,8 +37,7 @@
"useOryxIfAvailable": "false" "useOryxIfAvailable": "false"
}, },
"dotnet": { "dotnet": {
"version": "7", "version": "8.0"
"installUsingApt": "false"
}, },
"oryx": {} "oryx": {}
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment