diff --git a/script-library/README.md b/script-library/README.md index 359d30c4a5..cc9412945e 100644 --- a/script-library/README.md +++ b/script-library/README.md @@ -14,6 +14,7 @@ Some scripts have special installation instructions (like `desktop-lite-debian.s | Document | Script | Maintainers | |----------|--------|------------| +| [AWS CLI Install Script](docs/awscli.md) | `awscli-debian.sh` | VS Code and GitHub Codespaces teams | | [Azure CLI Install Script](docs/azcli.md) | `azcli-debian.sh` | VS Code and GitHub Codespaces teams | | [Common Script](docs/common.md) | `common-debian.sh`
`common-alpine.sh`
`common-redhat.sh` (Community) | VS Code and GitHub Codespaces teams | | [Desktop (Lightweight) Install Script](docs/desktop-lite.md) | `desktop-lite-debian.sh` | VS Code and GitHub Codespaces teams| @@ -97,7 +98,7 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ && apt-get clean -y && rm -rf /var/lib/apt/lists/* ``` -As before, the last line is technically optional, but minimizes the size of the layer by removing temporary contents. +As before, the last line is technically optional, but minimizes the size of the layer by removing temporary contents. You can also use `wget`: @@ -153,4 +154,3 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md) for details on contributing definition Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See [LICENSE](https://github.com/microsoft/vscode-dev-containers/blob/main/LICENSE) - diff --git a/script-library/awscli-debian.sh b/script-library/awscli-debian.sh new file mode 100644 index 0000000000..144ca44137 --- /dev/null +++ b/script-library/awscli-debian.sh @@ -0,0 +1,143 @@ +#!/usr/bin/env bash +#------------------------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information. +#------------------------------------------------------------------------------------------------------------- +# +# Docs: https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/awscli.md +# Maintainer: The VS Code and Codespaces Teams +# +# Syntax: ./awscli-debian.sh [AWS CLI version] + +set -e + +AWSCLI_VERSION=${1:-"latest"} +AWSCLI_GPG_KEY=FB5DB77FD5C118B80511ADA8A6310ACC4672475C +AWSCLI_GPG_KEY_MATERIAL="-----BEGIN PGP PUBLIC KEY BLOCK----- +mQINBF2Cr7UBEADJZHcgusOJl7ENSyumXh85z0TRV0xJorM2B/JL0kHOyigQluUG +ZMLhENaG0bYatdrKP+3H91lvK050pXwnO/R7fB/FSTouki4ciIx5OuLlnJZIxSzx +PqGl0mkxImLNbGWoi6Lto0LYxqHN2iQtzlwTVmq9733zd3XfcXrZ3+LblHAgEt5G +TfNxEKJ8soPLyWmwDH6HWCnjZ/aIQRBTIQ05uVeEoYxSh6wOai7ss/KveoSNBbYz +gbdzoqI2Y8cgH2nbfgp3DSasaLZEdCSsIsK1u05CinE7k2qZ7KgKAUIcT/cR/grk +C6VwsnDU0OUCideXcQ8WeHutqvgZH1JgKDbznoIzeQHJD238GEu+eKhRHcz8/jeG +94zkcgJOz3KbZGYMiTh277Fvj9zzvZsbMBCedV1BTg3TqgvdX4bdkhf5cH+7NtWO +lrFj6UwAsGukBTAOxC0l/dnSmZhJ7Z1KmEWilro/gOrjtOxqRQutlIqG22TaqoPG +fYVN+en3Zwbt97kcgZDwqbuykNt64oZWc4XKCa3mprEGC3IbJTBFqglXmZ7l9ywG +EEUJYOlb2XrSuPWml39beWdKM8kzr1OjnlOm6+lpTRCBfo0wa9F8YZRhHPAkwKkX +XDeOGpWRj4ohOx0d2GWkyV5xyN14p2tQOCdOODmz80yUTgRpPVQUtOEhXQARAQAB +tCFBV1MgQ0xJIFRlYW0gPGF3cy1jbGlAYW1hem9uLmNvbT6JAlQEEwEIAD4WIQT7 +Xbd/1cEYuAURraimMQrMRnJHXAUCXYKvtQIbAwUJB4TOAAULCQgHAgYVCgkICwIE +FgIDAQIeAQIXgAAKCRCmMQrMRnJHXJIXEAChLUIkg80uPUkGjE3jejvQSA1aWuAM +yzy6fdpdlRUz6M6nmsUhOExjVIvibEJpzK5mhuSZ4lb0vJ2ZUPgCv4zs2nBd7BGJ +MxKiWgBReGvTdqZ0SzyYH4PYCJSE732x/Fw9hfnh1dMTXNcrQXzwOmmFNNegG0Ox +au+VnpcR5Kz3smiTrIwZbRudo1ijhCYPQ7t5CMp9kjC6bObvy1hSIg2xNbMAN/Do +ikebAl36uA6Y/Uczjj3GxZW4ZWeFirMidKbtqvUz2y0UFszobjiBSqZZHCreC34B +hw9bFNpuWC/0SrXgohdsc6vK50pDGdV5kM2qo9tMQ/izsAwTh/d/GzZv8H4lV9eO +tEis+EpR497PaxKKh9tJf0N6Q1YLRHof5xePZtOIlS3gfvsH5hXA3HJ9yIxb8T0H +QYmVr3aIUes20i6meI3fuV36VFupwfrTKaL7VXnsrK2fq5cRvyJLNzXucg0WAjPF +RrAGLzY7nP1xeg1a0aeP+pdsqjqlPJom8OCWc1+6DWbg0jsC74WoesAqgBItODMB +rsal1y/q+bPzpsnWjzHV8+1/EtZmSc8ZUGSJOPkfC7hObnfkl18h+1QtKTjZme4d +H17gsBJr+opwJw/Zio2LMjQBOqlm3K1A4zFTh7wBC7He6KPQea1p2XAMgtvATtNe +YLZATHZKTJyiqA== +=vYOk +-----END PGP PUBLIC KEY BLOCK-----" + +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 + +# Get central common setting +get_common_setting() { + if [ "${common_settings_file_loaded}" != "true" ]; then + curl -sfL "https://aka.ms/vscode-dev-containers/script-library/settings.env" 2>/dev/null -o /tmp/vsdc-settings.env || echo "Could not download settings file. Skipping." + common_settings_file_loaded=true + fi + if [ -f "/tmp/vsdc-settings.env" ]; then + local multi_line="" + if [ "$2" = "true" ]; then multi_line="-z"; fi + local result="$(grep ${multi_line} -oP "$1=\"?\K[^\"]+" /tmp/vsdc-settings.env | tr -d '\0')" + if [ ! -z "${result}" ]; then declare -g $1="${result}"; fi + fi + echo "$1=${!1}" +} + +# Function to run apt-get if needed +apt_get_update_if_needed() +{ + if [ ! -d "/var/lib/apt/lists" ] || [ "$(ls /var/lib/apt/lists/ | wc -l)" = "0" ]; then + echo "Running apt-get update..." + apt-get update + else + echo "Skipping apt-get update." + fi +} + +# Checks if packages are installed and installs them if not +check_packages() { + if ! dpkg -s "$@" > /dev/null 2>&1; then + apt_get_update_if_needed + apt-get -y install --no-install-recommends "$@" + fi +} + +export DEBIAN_FRONTEND=noninteractive + +check_packages curl ca-certificates gnupg2 dirmngr + +verify_aws_cli_gpg_signature() { + local filePath=$1 + local sigFilePath=$2 + + get_common_setting AWSCLI_GPG_KEY + get_common_setting AWSCLI_GPG_KEY_MATERIAL + local awsCliPublicKeyFile=aws-cli-public-key.pem + echo "${AWSCLI_GPG_KEY_MATERIAL}" > "${awsCliPublicKeyFile}" + gpg --quiet --import "${awsCliPublicKeyFile}" + + gpg --batch --quiet --verify "${sigFilePath}" "${filePath}" + local status=$? + + gpg --batch --quiet --delete-keys "${AWSCLI_GPG_KEY}" + rm "${awsCliPublicKeyFile}" + + return ${status} +} + +install() { + local scriptZipFile=awscli.zip + local scriptSigFile=awscli.sig + + # See Linux install docs at https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html + if [ "${AWSCLI_VERSION}" != "latest" ]; then + local versionStr=-${AWSCLI_VERSION} + fi + architecture=$(dpkg --print-architecture) + case "${architecture}" in + amd64) architectureStr=x86_64 ;; + arm64) architectureStr=aarch64 ;; + *) + echo "AWS CLI does not support machine architecture '$architecture'. Please use an x86-64 or ARM64 machine." + exit 1 + esac + local scriptUrl=https://awscli.amazonaws.com/awscli-exe-linux-${architectureStr}${versionStr}.zip + curl "${scriptUrl}" -o "${scriptZipFile}" + curl "${scriptUrl}.sig" -o "${scriptSigFile}" + + verify_aws_cli_gpg_signature "$scriptZipFile" "$scriptSigFile" + if (( $? > 0 )); then + echo "Could not verify GPG signature of AWS CLI install script. Make sure you provided a valid version." + exit 1 + fi + + unzip "${scriptZipFile}" + ./aws/install + + rm -rf ./aws +} + +echo "(*) Installing AWS CLI..." + +install + +echo "Done!" \ No newline at end of file diff --git a/script-library/container-features/README.md b/script-library/container-features/README.md index 1f15700eaa..662a6b2ef2 100644 --- a/script-library/container-features/README.md +++ b/script-library/container-features/README.md @@ -8,7 +8,7 @@ This folder includes some explorations around dynamic container feature injectio **Registering a feature** -Create the install script in the [script-library](../../script-library/) directory with the naming convention `-.sh`. EG `python-debian.sh` or `common-alpine.sh` +Create the install script in the [script-library](../../script-library/) directory with the naming convention `-.sh`. E.g., `python-debian.sh` or `common-alpine.sh` Add a new object to the [devcontainer-features.json](../../script-library/container-features/src/devcontainer-features.json) file: @@ -16,7 +16,7 @@ Add a new object to the [devcontainer-features.json](../../script-library/contai { "id": "", // Must match the used to name the install script. "name": "Display Name of Feature", - "documentationURL": "https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/.md", + "documentationURL": "https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/.md", "options": { "scriptArgument$1": { "type": "string", // Either "string" or "boolean" @@ -31,7 +31,7 @@ Add a new object to the [devcontainer-features.json](../../script-library/contai } }, "buildArg": "_VSC_INSTALL_", // Must match the ENV VAR defined in the feature-scripts.env file. - "extensions": [], // Array of VS Code extensions to install with this feature. + "extensions": [], // Array of VS Code extensions to install with this feature. "include": [] // Array of base containers this script can be used on. } ``` @@ -43,7 +43,7 @@ _VSC_INSTALL_="-debian.sh ${_BUILD_ARG__:-_` and their default should match the declared default for that option. -- EG `_VSC_INSTALL_AZURE_CLI="azcli-debian.sh ${_BUILD_ARG_AZURE_CLI_VERSION:-latest}"` +- E.g., `_VSC_INSTALL_AZURE_CLI="azcli-debian.sh ${_BUILD_ARG_AZURE_CLI_VERSION:-latest}"` **Feature testing** @@ -59,11 +59,13 @@ _VSC_INSTALL_="-debian.sh ${_BUILD_ARG__:- `. -EG +E.g.: + ```sh runScript dotnet "3.1 true ${USERNAME} false /opt/dotnet dotnet" ``` @@ -71,9 +73,11 @@ runScript dotnet "3.1 true ${USERNAME} false /opt/dotnet dotnet" - If your script takes the installation user as an argument, be sure to specify it as ${USERNAME} in the tests for programatic testing. *Regression tests* + - Add your feature to the [test-features.env](../../script-library/container-features/test-features.env) file to include it in regression tests of the container-feature functionality. By setting the `_VSC_INSTALL_` ENV VAR to true and adding the expected _BUILD_ARG options for your feature. -EG +E.g.: + ``` _VSC_INSTALL_DOTNET=true _BUILD_ARG_DOTNET_VERSION=latest @@ -82,11 +86,12 @@ EG **Feature documentation** -Add your new feature to the list of scripts in the [script-library README.md](https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/README.md#scripts). +Add your new feature to the list of scripts in the [script-library README.md](../../script-library/README.md#scripts). + +Add documentation for your new feature script to the [script-library/docs](../../script-library/docs) directory. -Add documentation for your new feature script to the [script-library/docs](https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs) directory. +Documentation should include: -Documentation should include: - the status of the script, supported operating systems, and maintainer. - the syntax expected to run as a feature or script - a description of the script arguments @@ -97,6 +102,7 @@ Feel free to use other scripts in that directory as inspiration. ### Best practices for writing feature install scripts - Decouple sections of the shellscript that handle user setup, helper functions, and feature installation. Doing so will apply a logical and natural flow to the script for future developers and maintainers to follow. One way to denote this distinction is to use in-line comments throughout the script. + ```md # Logical flow recommended: 1. File header and description. @@ -109,6 +115,7 @@ Feel free to use other scripts in that directory as inspiration. ``` - One way to make troubleshooting the script easier when writing a bash shell script is to echo error messages to `STDERR`. A possible way we implemented this in bash scripts is to create an `err()` function like so: + ```sh # Setup STDERR. err() { @@ -119,12 +126,14 @@ Feel free to use other scripts in that directory as inspiration. ``` - If writing a bash shellscript, we recommend using double quotes and braces when referencing named variables: + ```sh variable="My example var" echo "${variable}" ``` - One method to to ensure the global space in a script is not too crowded with unnecessary variables is to assign return values from functions to a new variable, and use the keyword `local` for vars inside of functions. For example: + ```sh test_function() { local test = "hello world!" @@ -134,6 +143,7 @@ Feel free to use other scripts in that directory as inspiration. ``` - If using temporary files within the script, we recommend removing all those files once they are no longer needed. One method for doing this is running a cleanup function with a `trap` method when the script exits: + ```sh # Cleanup temporary directory and associated files when exiting the script. cleanup() { @@ -150,7 +160,7 @@ Feel free to use other scripts in that directory as inspiration. - Consider using [shellcheck](https://github.com/koalaman/shellcheck) or the [vscode-shellcheck extension](https://github.com/vscode-shellcheck/vscode-shellcheck) to apply linting and static code analysis to the bash script to ensure it is formatted correctly. -- Consider using common helper functions from [shared/utils.sh](../../script-library/shared/utils.sh) when managing common tasks (like updating PATH variables, or managing gpg keys) by copying them directly into your script. +- Consider using common helper functions from [shared/utils.sh](../../script-library/shared/utils.sh) when managing common tasks (like updating PATH variables, or managing gpg keys) by copying them directly into your script. - NOTE: This is done to minimize the impact that any change can have on existing working scripts. - Similarly, if you add a helper function to your script that could benefit others in the future, consider adding it to the `shared/utils.sh` file as well. diff --git a/script-library/container-features/src/devcontainer-features.json b/script-library/container-features/src/devcontainer-features.json index 76f6382c48..4e76d45dd8 100644 --- a/script-library/container-features/src/devcontainer-features.json +++ b/script-library/container-features/src/devcontainer-features.json @@ -201,7 +201,7 @@ "HashiCorp.terraform", "ms-azuretools.vscode-azureterraform" ], - "settings": { + "settings": { "terraform.languageServer": { "enabled": true, "args": [] @@ -363,6 +363,53 @@ "python-3-postgres" ] }, + { + "id": "aws-cli", + "name": "AWS CLI", + "documentationURL": "https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/awscli.md", + "options": { + "version": { + "type": "string", + "proposals": [ + "latest" + ], + "default": "latest", + "description": "Select or enter an AWS CLI version. (Available versions here: https://github.com/aws/aws-cli/blob/v2/CHANGELOG.rst)" + } + }, + "buildArg": "_VSC_INSTALL_AWS_CLI", + "extensions": [ + "AmazonWebServices.aws-toolkit-vscode" + ], + "include": [ + "cpp", + "dotnet", + "dotnet-fsharp", + "dotnet-mssql", + "kubernetes-helm", + "kubernetes-helm-minikube", + "docker-from-docker", + "docker-in-docker", + "powershell", + "java", + "go", + "php", + "ruby", + "rust", + "typescript-node", + "javascript-node", + "python-3", + "python-3-anaconda", + "python-3-miniconda", + "ubuntu", + "debian", + "javascript-node-mongo", + "javascript-node-postgres", + "php-mariadb", + "ruby-rails-postgres", + "python-3-postgres" + ] + }, { "id": "azure-cli", "name": "Azure CLI", @@ -585,7 +632,8 @@ "NVM_DIR":"/usr/local/share/nvm", "NVM_SYMLINK_CURRENT": "true", "PATH": "${NVM_DIR}/current/bin:${PATH}" - }, "include": [ + }, + "include": [ "cpp", "kubernetes-helm", "kubernetes-helm-minikube", @@ -630,7 +678,7 @@ "PIPX_BIN_DIR": "/usr/local/py-utils/bin", "PATH":"${PYTHON_PATH}/bin:${PATH}:${PIPX_BIN_DIR}" }, - "settings": { + "settings": { "python.defaultInterpreterPath": "/usr/local/bin/python", "python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8", "python.formatting.blackPath": "/usr/local/py-utils/bin/black", @@ -832,7 +880,8 @@ "containerEnv": { "SDKMAN_DIR": "/usr/local/sdkman", "PATH": "${SDKMAN_DIR}/bin:${SDKMAN_DIR}/candidates/gradle/current/bin:${PATH}" - }, "include": [ + }, + "include": [ "cpp", "kubernetes-helm", "kubernetes-helm-minikube", @@ -934,7 +983,7 @@ "mutantdino.resourcemonitor", "matklad.rust-analyzer", "tamasfe.even-better-toml", - "serayuzgur.crates" + "serayuzgur.crates" ], "containerEnv": { "CARGO_HOME": "/usr/local/cargo", @@ -1123,4 +1172,4 @@ ] } ] -} +} \ No newline at end of file diff --git a/script-library/container-features/src/feature-scripts.env b/script-library/container-features/src/feature-scripts.env index 90136fcd1e..0de5048281 100644 --- a/script-library/container-features/src/feature-scripts.env +++ b/script-library/container-features/src/feature-scripts.env @@ -6,6 +6,7 @@ _VSC_INSTALL_DOCKER_FROM_DOCKER="docker-debian.sh true /var/run/docker-host.sock _VSC_INSTALL_KUBECTL_HELM_MINIKUBE="kubectl-helm-debian.sh ${_BUILD_ARG_KUBECTL_HELM_MINIKUBE_VERSION:-latest} ${_BUILD_ARG_KUBECTL_HELM_MINIKUBE_HELM:-latest} ${_BUILD_ARG_KUBECTL_HELM_MINIKUBE_MINIKUBE:-latest}" _VSC_INSTALL_TERRAFORM="terraform-debian.sh ${_BUILD_ARG_TERRAFORM_VERSION:-latest} ${_BUILD_ARG_TERRAFORM_TFLINT:-latest} ${_BUILD_ARG_TERRAFORM_TERRAGRUNT:-latest}" _VSC_INSTALL_GITHUB_CLI="github-debian.sh ${_BUILD_ARG_GITHUB_CLI_VERSION:-latest}" +_VSC_INSTALL_AWS_CLI="awscli-debian.sh ${_BUILD_ARG_AWS_CLI_VERSION:-latest}" _VSC_INSTALL_AZURE_CLI="azcli-debian.sh ${_BUILD_ARG_AZURE_CLI_VERSION:-latest}" _VSC_INSTALL_SSH=sshd-debian.sh _VSC_INSTALL_NODE="node-debian.sh /usr/local/share/nvm ${_BUILD_ARG_NODE_VERSION:-lts/*} automatic true ${_BUILD_ARG_NODE_NODEGYPDEPENDENCIES:-true}" diff --git a/script-library/docs/awscli.md b/script-library/docs/awscli.md new file mode 100644 index 0000000000..3d0ec7ab02 --- /dev/null +++ b/script-library/docs/awscli.md @@ -0,0 +1,50 @@ +# AWS CLI Install Script + +*Installs the AWS CLI along with needed dependencies. Useful for base Dockerfiles that often are missing required install dependencies like gpg.* + +**Script status**: Stable + +**OS support**: Debian 9+, Ubuntu 18.04+, and downstream distros. + +**Maintainer:** The VS Code and GitHub Codespaces teams + +## Syntax + +```text +./awscli-debian.sh [Version] +``` + +Or as a feature: + +```json +"features": { + "aws-cli": "latest" +} +``` + +## Usage + +### Feature use + +To install these capabilities in your primary dev container, reference it in `devcontainer.json` as follows: + +```json +"features": { + "aws-cli": "latest" +} +``` + +If you have already built your development container, run the **Rebuild Container** command from the command palette (Ctrl/Cmd + Shift + P or F1) to pick up the change. + +### Script use + +1. Add [`awscli-debian.sh`](../awscli-debian.sh) to `.devcontainer/library-scripts` + +2. Add the following to your `.devcontainer/Dockerfile`: + + ```Dockerfile + COPY library-scripts/awscli-debian.sh /tmp/library-scripts/ + RUN bash /tmp/library-scripts/awscli-debian.sh + ``` + +That's it! diff --git a/script-library/shared/settings.env b/script-library/shared/settings.env index a2a09f692e..7eb7ad9d93 100644 --- a/script-library/shared/settings.env +++ b/script-library/shared/settings.env @@ -22,3 +22,32 @@ GO_GPG_KEY_URI="https://dl.google.com/linux/linux_signing_key.pub" GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com:80 keyserver hkps://keys.openpgp.org keyserver hkp://keyserver.pgp.com" +AWSCLI_GPG_KEY=FB5DB77FD5C118B80511ADA8A6310ACC4672475C +AWSCLI_GPG_KEY_MATERIAL="-----BEGIN PGP PUBLIC KEY BLOCK----- +mQINBF2Cr7UBEADJZHcgusOJl7ENSyumXh85z0TRV0xJorM2B/JL0kHOyigQluUG +ZMLhENaG0bYatdrKP+3H91lvK050pXwnO/R7fB/FSTouki4ciIx5OuLlnJZIxSzx +PqGl0mkxImLNbGWoi6Lto0LYxqHN2iQtzlwTVmq9733zd3XfcXrZ3+LblHAgEt5G +TfNxEKJ8soPLyWmwDH6HWCnjZ/aIQRBTIQ05uVeEoYxSh6wOai7ss/KveoSNBbYz +gbdzoqI2Y8cgH2nbfgp3DSasaLZEdCSsIsK1u05CinE7k2qZ7KgKAUIcT/cR/grk +C6VwsnDU0OUCideXcQ8WeHutqvgZH1JgKDbznoIzeQHJD238GEu+eKhRHcz8/jeG +94zkcgJOz3KbZGYMiTh277Fvj9zzvZsbMBCedV1BTg3TqgvdX4bdkhf5cH+7NtWO +lrFj6UwAsGukBTAOxC0l/dnSmZhJ7Z1KmEWilro/gOrjtOxqRQutlIqG22TaqoPG +fYVN+en3Zwbt97kcgZDwqbuykNt64oZWc4XKCa3mprEGC3IbJTBFqglXmZ7l9ywG +EEUJYOlb2XrSuPWml39beWdKM8kzr1OjnlOm6+lpTRCBfo0wa9F8YZRhHPAkwKkX +XDeOGpWRj4ohOx0d2GWkyV5xyN14p2tQOCdOODmz80yUTgRpPVQUtOEhXQARAQAB +tCFBV1MgQ0xJIFRlYW0gPGF3cy1jbGlAYW1hem9uLmNvbT6JAlQEEwEIAD4WIQT7 +Xbd/1cEYuAURraimMQrMRnJHXAUCXYKvtQIbAwUJB4TOAAULCQgHAgYVCgkICwIE +FgIDAQIeAQIXgAAKCRCmMQrMRnJHXJIXEAChLUIkg80uPUkGjE3jejvQSA1aWuAM +yzy6fdpdlRUz6M6nmsUhOExjVIvibEJpzK5mhuSZ4lb0vJ2ZUPgCv4zs2nBd7BGJ +MxKiWgBReGvTdqZ0SzyYH4PYCJSE732x/Fw9hfnh1dMTXNcrQXzwOmmFNNegG0Ox +au+VnpcR5Kz3smiTrIwZbRudo1ijhCYPQ7t5CMp9kjC6bObvy1hSIg2xNbMAN/Do +ikebAl36uA6Y/Uczjj3GxZW4ZWeFirMidKbtqvUz2y0UFszobjiBSqZZHCreC34B +hw9bFNpuWC/0SrXgohdsc6vK50pDGdV5kM2qo9tMQ/izsAwTh/d/GzZv8H4lV9eO +tEis+EpR497PaxKKh9tJf0N6Q1YLRHof5xePZtOIlS3gfvsH5hXA3HJ9yIxb8T0H +QYmVr3aIUes20i6meI3fuV36VFupwfrTKaL7VXnsrK2fq5cRvyJLNzXucg0WAjPF +RrAGLzY7nP1xeg1a0aeP+pdsqjqlPJom8OCWc1+6DWbg0jsC74WoesAqgBItODMB +rsal1y/q+bPzpsnWjzHV8+1/EtZmSc8ZUGSJOPkfC7hObnfkl18h+1QtKTjZme4d +H17gsBJr+opwJw/Zio2LMjQBOqlm3K1A4zFTh7wBC7He6KPQea1p2XAMgtvATtNe +YLZATHZKTJyiqA== +=vYOk +-----END PGP PUBLIC KEY BLOCK-----" diff --git a/script-library/test/regression/run-scripts.sh b/script-library/test/regression/run-scripts.sh index 780a76fcfe..5195e997a8 100755 --- a/script-library/test/regression/run-scripts.sh +++ b/script-library/test/regression/run-scripts.sh @@ -72,6 +72,7 @@ fi architecture="$(uname -m)" if [ "${DISTRO}" = "debian" ]; then + runScript awscli runScript azcli runScript fish "false ${USERNAME}" runScript git-from-src "latest true" @@ -80,7 +81,7 @@ if [ "${DISTRO}" = "debian" ]; then runScript go "1.14 /opt/go /go ${USERNAME} false" runScript gradle "4.4 /usr/local/sdkman1 ${USERNAME} false" runScript kubectl-helm "latest latest latest" - runScript maven "3.6.3 /usr/local/sdkman3 ${USERNAME} false" + runScript maven "3.6.3 /usr/local/sdkman3 ${USERNAME} false" runScript node "/usr/local/share/nvm 10 ${USERNAME}" runScript python "3.4.10 /opt/python /opt/python-tools ${USERNAME} false false" runScript ruby "${USERNAME} false" "2.7.3" @@ -96,7 +97,7 @@ if [ "${DISTRO}" = "debian" ]; then if [ "${architecture}" = "amd64" ] || [ "${architecture}" = "x86_64" ]; then runScript homebrew "${USERNAME} false true /home/${USERNAME}/linuxbrew" fi - runScript dotnet "3.1 true ${USERNAME} false /opt/dotnet dotnet" + runScript dotnet "3.1 true ${USERNAME} false /opt/dotnet dotnet" fi if [ "${DISTRO}" != "alpine" ]; then