From 3063f5f105224ee039cddee4df8b6aaee934430e Mon Sep 17 00:00:00 2001 From: Jeff Putsch <150963136+jdputschadi@users.noreply.github.com> Date: Wed, 31 Jan 2024 09:21:33 -0800 Subject: [PATCH] Add RHEL support to Java feature (#821) * Initial rhel update * RHEL support added. * Add tests * quiet down test for ant/gradle/maven/groovy when they are not yet installed. * revert README -- it is autobuilt * Update src/java/NOTES.md add "`" around package manager names. Co-authored-by: Samruddhi Khandale * address PR feedback --------- Co-authored-by: Jeff Putsch Co-authored-by: Samruddhi Khandale --- src/java/NOTES.md | 2 +- src/java/devcontainer-feature.json | 4 +- src/java/install.sh | 160 +++++++++++++++--- test/java/alma-8-minimal.sh | 15 ++ test/java/alma-8.sh | 15 ++ test/java/alma-9-minimal.sh | 15 ++ test/java/alma-9.sh | 15 ++ test/java/centos-7.sh | 15 ++ test/java/fedora.sh | 15 ++ .../install_additional_java_rhel_family.sh | 13 ++ ...d_maven_and_groovy_for_user_rhel_family.sh | 34 ++++ ...gradle_and_maven_and_groovy_rhel_family.sh | 34 ++++ ...roovy_with_specific_version_rhel_family.sh | 30 ++++ ...all_from_non_default_distro_rhel_family.sh | 11 ++ ...ll_non_conventional_version_rhel_family.sh | 11 ++ test/java/mariner.sh | 15 ++ test/java/rocky-8-minimal.sh | 15 ++ test/java/rocky-8.sh | 15 ++ test/java/rocky-9-minimal.sh | 15 ++ test/java/rocky-9.sh | 15 ++ test/java/scenarios.json | 139 ++++++++++++++- 21 files changed, 574 insertions(+), 29 deletions(-) create mode 100644 test/java/alma-8-minimal.sh create mode 100644 test/java/alma-8.sh create mode 100644 test/java/alma-9-minimal.sh create mode 100644 test/java/alma-9.sh create mode 100644 test/java/centos-7.sh create mode 100644 test/java/fedora.sh create mode 100644 test/java/install_additional_java_rhel_family.sh create mode 100644 test/java/install_ant_and_gradle_and_maven_and_groovy_for_user_rhel_family.sh create mode 100644 test/java/install_ant_and_gradle_and_maven_and_groovy_rhel_family.sh create mode 100644 test/java/install_ant_and_gradle_and_maven_and_groovy_with_specific_version_rhel_family.sh create mode 100644 test/java/install_from_non_default_distro_rhel_family.sh create mode 100644 test/java/install_non_conventional_version_rhel_family.sh create mode 100644 test/java/mariner.sh create mode 100644 test/java/rocky-8-minimal.sh create mode 100644 test/java/rocky-8.sh create mode 100644 test/java/rocky-9-minimal.sh create mode 100644 test/java/rocky-9.sh diff --git a/src/java/NOTES.md b/src/java/NOTES.md index 63622afaf..edc310e23 100644 --- a/src/java/NOTES.md +++ b/src/java/NOTES.md @@ -5,6 +5,6 @@ For the Java Feature from this repository, see [NOTICE.txt](https://github.com/d ## OS Support -This Feature should work on recent versions of Debian/Ubuntu-based distributions with the `apt` package manager installed. +Debian/Ubuntu, RedHat Enterprise Linux, Fedora, Alma, and RockyLinux distributions with the `apt`, `yum`, `dnf`, or `microdnf` package manager installed. `bash` is required to execute the `install.sh` script. diff --git a/src/java/devcontainer-feature.json b/src/java/devcontainer-feature.json index 64a4ca932..f65a8f360 100644 --- a/src/java/devcontainer-feature.json +++ b/src/java/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "java", - "version": "1.3.0", + "version": "1.4.0", "name": "Java (via SDKMAN!)", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/java", "description": "Installs Java, SDKMAN! (if not installed), and needed dependencies.", @@ -111,4 +111,4 @@ "installsAfter": [ "ghcr.io/devcontainers/features/common-utils" ] -} +} \ No newline at end of file diff --git a/src/java/install.sh b/src/java/install.sh index 16bbb1c66..37cb9e52b 100644 --- a/src/java/install.sh +++ b/src/java/install.sh @@ -30,14 +30,65 @@ ADDITIONAL_VERSIONS="${ADDITIONALVERSIONS:-""}" set -e -# Clean up -rm -rf /var/lib/apt/lists/* - if [ "$(id -u)" -ne 0 ]; then echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' exit 1 fi +# Bring in ID, ID_LIKE, VERSION_ID, VERSION_CODENAME +. /etc/os-release +# Get an adjusted ID independent of distro variants +MAJOR_VERSION_ID=$(echo ${VERSION_ID} | cut -d . -f 1) +if [ "${ID}" = "debian" ] || [ "${ID_LIKE}" = "debian" ]; then + ADJUSTED_ID="debian" +elif [[ "${ID}" = "rhel" || "${ID}" = "fedora" || "${ID}" = "mariner" || "${ID_LIKE}" = *"rhel"* || "${ID_LIKE}" = *"fedora"* || "${ID_LIKE}" = *"mariner"* ]]; then + ADJUSTED_ID="rhel" + if [[ "${ID}" = "rhel" ]] || [[ "${ID}" = *"alma"* ]] || [[ "${ID}" = *"rocky"* ]]; then + VERSION_CODENAME="rhel${MAJOR_VERSION_ID}" + else + VERSION_CODENAME="${ID}${MAJOR_VERSION_ID}" + fi +else + echo "Linux distro ${ID} not supported." + exit 1 +fi + +# Setup INSTALL_CMD & PKG_MGR_CMD +if type apt-get > /dev/null 2>&1; then + PKG_MGR_CMD=apt-get + INSTALL_CMD="${PKG_MGR_CMD} -y install --no-install-recommends" +elif type microdnf > /dev/null 2>&1; then + PKG_MGR_CMD=microdnf + INSTALL_CMD="${PKG_MGR_CMD} -y install --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0" +elif type dnf > /dev/null 2>&1; then + PKG_MGR_CMD=dnf + INSTALL_CMD="${PKG_MGR_CMD} -y install" +elif type yum > /dev/null 2>&1; then + PKG_MGR_CMD=yum + INSTALL_CMD="${PKG_MGR_CMD} -y install" +else + echo "(Error) Unable to find a supported package manager." + exit 1 +fi + +# Clean up +clean_up() { + local pkg + case ${ADJUSTED_ID} in + debian) + rm -rf /var/lib/apt/lists/* + ;; + rhel) + for pkg in epel-release epel-release-latest packages-microsoft-prod; do + ${PKG_MGR_CMD} -y remove $pkg 2>/dev/null || /bin/true + done + rm -rf /var/cache/dnf/* /var/cache/yum/* + rm -f /etc/yum.repos.d/docker-ce.repo + ;; + esac +} +clean_up + # Ensure that login shells get the correct path if the user updated the PATH using ENV. rm -f /etc/profile.d/00-restore-env.sh echo "export PATH=${PATH//$(sh -lc 'echo $PATH')/\$PATH}" > /etc/profile.d/00-restore-env.sh @@ -61,31 +112,79 @@ elif [ "${USERNAME}" = "none" ] || ! id -u ${USERNAME} > /dev/null 2>&1; then fi updaterc() { + local _bashrc + local _zshrc if [ "${UPDATE_RC}" = "true" ]; then - echo "Updating /etc/bash.bashrc and /etc/zsh/zshrc..." - if [[ "$(cat /etc/bash.bashrc)" != *"$1"* ]]; then - echo -e "$1" >> /etc/bash.bashrc + case $ADJUSTED_ID in + debian) + _bashrc=/etc/bash.bashrc + _zshrc=/etc/zsh/zshrc + ;; + rhel) + _bashrc=/etc/bashrc + _zshrc=/etc/zshrc + ;; + esac + echo "Updating ${_bashrc} and ${_zshrc}..." + if [[ "$(cat ${_bashrc})" != *"$1"* ]]; then + echo -e "$1" >> "${_bashrc}" fi - if [ -f "/etc/zsh/zshrc" ] && [[ "$(cat /etc/zsh/zshrc)" != *"$1"* ]]; then - echo -e "$1" >> /etc/zsh/zshrc + if [ -f "${_zshrc}" ] && [[ "$(cat ${_zshrc})" != *"$1"* ]]; then + echo -e "$1" >> "${_zshrc}" fi fi } -apt_get_update() -{ - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi + +pkg_manager_update() { + case $ADJUSTED_ID in + debian) + if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then + echo "Running apt-get update..." + ${PKG_MGR_CMD} update -y + fi + ;; + rhel) + if [ ${PKG_MGR_CMD} = "microdnf" ]; then + if [ "$(ls /var/cache/yum/* 2>/dev/null | wc -l)" = 0 ]; then + echo "Running ${PKG_MGR_CMD} makecache ..." + ${PKG_MGR_CMD} makecache + fi + else + if [ "$(ls /var/cache/${PKG_MGR_CMD}/* 2>/dev/null | wc -l)" = 0 ]; then + echo "Running ${PKG_MGR_CMD} check-update ..." + set +e + stderr_messages=$(${PKG_MGR_CMD} -q check-update 2>&1) + rc=$? + # centos 7 sometimes returns a status of 100 when it apears to work. + if [ $rc != 0 ] && [ $rc != 100 ]; then + echo "(Error) ${PKG_MGR_CMD} check-update produced the following error message(s):" + echo "${stderr_messages}" + exit 1 + fi + set -e + fi + fi + ;; + esac } # Checks if packages are installed and installs them if not check_packages() { - if ! dpkg -s "$@" > /dev/null 2>&1; then - apt_get_update - apt-get -y install --no-install-recommends "$@" - fi + case ${ADJUSTED_ID} in + debian) + if ! dpkg -s "$@" > /dev/null 2>&1; then + pkg_manager_update + ${INSTALL_CMD} "$@" + fi + ;; + rhel) + if ! rpm -q "$@" > /dev/null 2>&1; then + pkg_manager_update + ${INSTALL_CMD} "$@" + fi + ;; + esac } # Use Microsoft JDK for everything but JDK 8 and 18 (unless specified differently with jdkDistro option) @@ -142,8 +241,19 @@ if [ "${architecture}" != "amd64" ] && [ "${architecture}" != "x86_64" ] && [ "$ exit 1 fi -# Install dependencies -check_packages curl ca-certificates zip unzip sed +# Install dependencies, +check_packages ca-certificates zip unzip sed findutils util-linux tar +# Make sure passwd (Debian) and shadow-utils RHEL family is installed +if [ ${ADJUSTED_ID} = "debian" ]; then + check_packages passwd +elif [ ${ADJUSTED_ID} = "rhel" ]; then + check_packages shadow-utils +fi +# minimal RHEL installs may not include curl, or includes curl-minimal instead. +# Install curl if the "curl" command is not present. +if ! type curl > /dev/null 2>&1; then + check_packages curl +fi # Install sdkman if not installed if [ ! -d "${SDKMAN_DIR}" ]; then @@ -178,26 +288,26 @@ if [ ! -z "${ADDITIONAL_VERSIONS}" ]; then fi # Install Ant -if [[ "${INSTALL_ANT}" = "true" ]] && ! ant -version > /dev/null; then +if [[ "${INSTALL_ANT}" = "true" ]] && ! ant -version > /dev/null 2>&1; then sdk_install ant ${ANT_VERSION} fi # Install Gradle -if [[ "${INSTALL_GRADLE}" = "true" ]] && ! gradle --version > /dev/null; then +if [[ "${INSTALL_GRADLE}" = "true" ]] && ! gradle --version > /dev/null 2>&1; then sdk_install gradle ${GRADLE_VERSION} fi # Install Maven -if [[ "${INSTALL_MAVEN}" = "true" ]] && ! mvn --version > /dev/null; then +if [[ "${INSTALL_MAVEN}" = "true" ]] && ! mvn --version > /dev/null 2>&1; then sdk_install maven ${MAVEN_VERSION} fi # Install Groovy -if [[ "${INSTALL_GROOVY}" = "true" ]] && ! groovy --version > /dev/null; then +if [[ "${INSTALL_GROOVY}" = "true" ]] && ! groovy --version > /dev/null 2>&1; then sdk_install groovy "${GROOVY_VERSION}" fi # Clean up -rm -rf /var/lib/apt/lists/* +clean_up echo "Done!" diff --git a/test/java/alma-8-minimal.sh b/test/java/alma-8-minimal.sh new file mode 100644 index 000000000..40f48562c --- /dev/null +++ b/test/java/alma-8-minimal.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "version" java --version + +# Check env +check "JAVA_HOME is set correctly" echo $JAVA_HOME | grep "/usr/local/sdkman/candidates/java/current" + +# Report result +reportResults diff --git a/test/java/alma-8.sh b/test/java/alma-8.sh new file mode 100644 index 000000000..40f48562c --- /dev/null +++ b/test/java/alma-8.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "version" java --version + +# Check env +check "JAVA_HOME is set correctly" echo $JAVA_HOME | grep "/usr/local/sdkman/candidates/java/current" + +# Report result +reportResults diff --git a/test/java/alma-9-minimal.sh b/test/java/alma-9-minimal.sh new file mode 100644 index 000000000..40f48562c --- /dev/null +++ b/test/java/alma-9-minimal.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "version" java --version + +# Check env +check "JAVA_HOME is set correctly" echo $JAVA_HOME | grep "/usr/local/sdkman/candidates/java/current" + +# Report result +reportResults diff --git a/test/java/alma-9.sh b/test/java/alma-9.sh new file mode 100644 index 000000000..40f48562c --- /dev/null +++ b/test/java/alma-9.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "version" java --version + +# Check env +check "JAVA_HOME is set correctly" echo $JAVA_HOME | grep "/usr/local/sdkman/candidates/java/current" + +# Report result +reportResults diff --git a/test/java/centos-7.sh b/test/java/centos-7.sh new file mode 100644 index 000000000..40f48562c --- /dev/null +++ b/test/java/centos-7.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "version" java --version + +# Check env +check "JAVA_HOME is set correctly" echo $JAVA_HOME | grep "/usr/local/sdkman/candidates/java/current" + +# Report result +reportResults diff --git a/test/java/fedora.sh b/test/java/fedora.sh new file mode 100644 index 000000000..40f48562c --- /dev/null +++ b/test/java/fedora.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "version" java --version + +# Check env +check "JAVA_HOME is set correctly" echo $JAVA_HOME | grep "/usr/local/sdkman/candidates/java/current" + +# Report result +reportResults diff --git a/test/java/install_additional_java_rhel_family.sh b/test/java/install_additional_java_rhel_family.sh new file mode 100644 index 000000000..882c49d1c --- /dev/null +++ b/test/java/install_additional_java_rhel_family.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +check "java version 11 installed as default" grep "11\." <(java --version) +check "java version 17 installed" grep "^17\." <(ls /usr/local/sdkman/candidates/java) +check "java version 8 installed" grep "^8\." <(ls /usr/local/sdkman/candidates/java) + +# Report result +reportResults diff --git a/test/java/install_ant_and_gradle_and_maven_and_groovy_for_user_rhel_family.sh b/test/java/install_ant_and_gradle_and_maven_and_groovy_for_user_rhel_family.sh new file mode 100644 index 000000000..8d9f293e9 --- /dev/null +++ b/test/java/install_ant_and_gradle_and_maven_and_groovy_for_user_rhel_family.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +check "user is vscode" grep vscode <(whoami) + +check "java" java --version + +check "ant" ant -version +cat << EOF > /tmp/build.xml + +EOF +cd /tmp && ant init +check "ant-src exists" grep "ant-src" <(ls -la /tmp) + +check "gradle" gradle --version +cd /tmp && gradle init --type basic --dsl groovy --incubating --project-name test +check "GRADLE_USER_HOME exists" grep ".gradle" <(ls -la /home/vscode) + +check "maven" mvn --version +cd /tmp && mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false +check "m2 exists" grep ".m2" <(ls -la /home/vscode) + +check "groovy" groovy --version +cat << EOF > /tmp/test.groovy +println("verify") +EOF +check "groovy works" test "$(groovy /tmp/test.groovy)" = "verify" + +# Report result +reportResults diff --git a/test/java/install_ant_and_gradle_and_maven_and_groovy_rhel_family.sh b/test/java/install_ant_and_gradle_and_maven_and_groovy_rhel_family.sh new file mode 100644 index 000000000..e171f5be5 --- /dev/null +++ b/test/java/install_ant_and_gradle_and_maven_and_groovy_rhel_family.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +check "user is root" grep root <(whoami) + +check "java" java --version + +check "ant" ant -version +cat << EOF > /tmp/build.xml + +EOF +cd /tmp && ant init +check "ant-src exists" grep "ant-src" <(ls -la /tmp) + +check "gradle" gradle --version +cd /tmp && gradle init --type basic --dsl groovy --incubating --project-name test +check "GRADLE_USER_HOME exists" grep ".gradle" <(ls -la /root) + +check "maven" mvn --version +cd /tmp && mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false +check "m2 exists" grep ".m2" <(ls -la /root) + +check "groovy" groovy --version +cat << EOF > /tmp/test.groovy +println("verify") +EOF +check "groovy works" test "$(groovy /tmp/test.groovy)" = "verify" + +# Report result +reportResults diff --git a/test/java/install_ant_and_gradle_and_maven_and_groovy_with_specific_version_rhel_family.sh b/test/java/install_ant_and_gradle_and_maven_and_groovy_with_specific_version_rhel_family.sh new file mode 100644 index 000000000..54e13e0cf --- /dev/null +++ b/test/java/install_ant_and_gradle_and_maven_and_groovy_with_specific_version_rhel_family.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +check "user is root" grep root <(whoami) + +check "java" java --version + +check "ant version" grep "Ant(TM) version 1.10.12" <(ant -version) +cat << EOF > /tmp/build.xml + +EOF +cd /tmp && ant init +check "ant-src exists" grep "ant-src" <(ls -la /tmp) + +check "gradle version" grep "Gradle 6.8.3" <(gradle --version) +cd /tmp && gradle init --type basic --dsl groovy --project-name test +check "GRADLE_USER_HOME exists" grep ".gradle" <(ls -la /root) + +check "maven version" grep "Apache Maven 3.6.3" <(mvn --version) +cd /tmp && mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false +check "m2 exists" grep ".m2" <(ls -la /root) + +check "groovy version" grep "Groovy Version: 2.5.22" <(groovy --version) + +# Report result +reportResults diff --git a/test/java/install_from_non_default_distro_rhel_family.sh b/test/java/install_from_non_default_distro_rhel_family.sh new file mode 100644 index 000000000..3ab648cab --- /dev/null +++ b/test/java/install_from_non_default_distro_rhel_family.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +check "java version openjdk 21 installed" grep "openjdk 21." <(java --version) + +# Report result +reportResults diff --git a/test/java/install_non_conventional_version_rhel_family.sh b/test/java/install_non_conventional_version_rhel_family.sh new file mode 100644 index 000000000..3ab648cab --- /dev/null +++ b/test/java/install_non_conventional_version_rhel_family.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +check "java version openjdk 21 installed" grep "openjdk 21." <(java --version) + +# Report result +reportResults diff --git a/test/java/mariner.sh b/test/java/mariner.sh new file mode 100644 index 000000000..40f48562c --- /dev/null +++ b/test/java/mariner.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "version" java --version + +# Check env +check "JAVA_HOME is set correctly" echo $JAVA_HOME | grep "/usr/local/sdkman/candidates/java/current" + +# Report result +reportResults diff --git a/test/java/rocky-8-minimal.sh b/test/java/rocky-8-minimal.sh new file mode 100644 index 000000000..40f48562c --- /dev/null +++ b/test/java/rocky-8-minimal.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "version" java --version + +# Check env +check "JAVA_HOME is set correctly" echo $JAVA_HOME | grep "/usr/local/sdkman/candidates/java/current" + +# Report result +reportResults diff --git a/test/java/rocky-8.sh b/test/java/rocky-8.sh new file mode 100644 index 000000000..40f48562c --- /dev/null +++ b/test/java/rocky-8.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "version" java --version + +# Check env +check "JAVA_HOME is set correctly" echo $JAVA_HOME | grep "/usr/local/sdkman/candidates/java/current" + +# Report result +reportResults diff --git a/test/java/rocky-9-minimal.sh b/test/java/rocky-9-minimal.sh new file mode 100644 index 000000000..40f48562c --- /dev/null +++ b/test/java/rocky-9-minimal.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "version" java --version + +# Check env +check "JAVA_HOME is set correctly" echo $JAVA_HOME | grep "/usr/local/sdkman/candidates/java/current" + +# Report result +reportResults diff --git a/test/java/rocky-9.sh b/test/java/rocky-9.sh new file mode 100644 index 000000000..40f48562c --- /dev/null +++ b/test/java/rocky-9.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "version" java --version + +# Check env +check "JAVA_HOME is set correctly" echo $JAVA_HOME | grep "/usr/local/sdkman/candidates/java/current" + +# Report result +reportResults diff --git a/test/java/scenarios.json b/test/java/scenarios.json index dac9850f2..6e6426969 100644 --- a/test/java/scenarios.json +++ b/test/java/scenarios.json @@ -69,5 +69,142 @@ "jdkDistro": "graalce" } } + }, + "install_from_non_default_distro_rhel_family": { + "image": "almalinux:8", + "features": { + "java": { + "version": "21", + "jdkDistro": "open" + } + } + }, + "install_additional_java_rhel_family": { + "image": "almalinux:8", + "features": { + "java": { + "version": "11", + "additionalVersions": "17,8" + } + } + }, + "install_ant_and_gradle_and_maven_and_groovy_for_user_rhel_family": { + "image": "almalinux:8", + "remoteUser": "vscode", + "features": { + "common-utils": { + "username": "vscode" + }, + "java": { + "version": "latest", + "installAnt": true, + "installGradle": true, + "installMaven": true, + "installGroovy": true + } + } + }, + "install_ant_and_gradle_and_maven_and_groovy_rhel_family": { + "image": "almalinux:8", + "features": { + "java": { + "version": "latest", + "installAnt": true, + "installGradle": true, + "installMaven": true, + "installGroovy": true + } + } + }, + "install_ant_and_gradle_and_maven_and_groovy_with_specific_version_rhel_family": { + "image": "almalinux:8", + "features": { + "java": { + "version": "latest", + "installAnt": "true", + "antVersion": "1.10.12", + "installGradle": "true", + "gradleVersion": "6.8.3", + "installMaven": "true", + "mavenVersion": "3.6.3", + "installGroovy": "true", + "groovyVersion": "2.5.22" + } + } + }, + "install_non_conventional_version_rhel_family": { + "image": "almalinux:8", + "features": { + "java": { + "version": "21", + "jdkDistro": "graalce" + } + } + }, + "centos-7": { + "image": "centos:centos7", + "features": { + "java": {} + } + }, + "alma-8": { + "image": "almalinux:8", + "features": { + "java": {} + } + }, + "alma-8-minimal": { + "image": "almalinux:8-minimal", + "features": { + "java": {} + } + }, + "alma-9": { + "image": "almalinux:9", + "features": { + "java": {} + } + }, + "alma-9-minimal": { + "image": "almalinux:9-minimal", + "features": { + "java": {} + } + }, + "rocky-8": { + "image": "rockylinux:8", + "features": { + "java": {} + } + }, + "rocky-8-minimal": { + "image": "rockylinux:8-minimal", + "features": { + "java": {} + } + }, + "rocky-9": { + "image": "rockylinux:9", + "features": { + "java": {} + } + }, + "rocky-9-minimal": { + "image": "rockylinux:9-minimal", + "features": { + "java": {} + } + }, + "mariner": { + "image": "mcr.microsoft.com/cbl-mariner/base/core:2.0", + "features": { + "java": {} + } + }, + "fedora": { + "image": "fedora", + "features": { + "java": {} + } } -} +} \ No newline at end of file