* Fix #258, improve tests, fix oryx bug * Drop Debian 9 from tests given it is out of support
This commit is contained in:
parent
73a9c7d382
commit
3020d6da64
12 changed files with 137 additions and 17 deletions
|
@ -11,5 +11,8 @@
|
|||
"features": {
|
||||
"ghcr.io/devcontainers/features/docker-in-docker:1": {}
|
||||
},
|
||||
"postCreateCommand": "npm install -g @devcontainers/cli"
|
||||
"postCreateCommand": "npm install -g @devcontainers/cli",
|
||||
"hostRequirements": {
|
||||
"cpus": 4
|
||||
}
|
||||
}
|
||||
|
|
1
.github/workflows/test-all.yaml
vendored
1
.github/workflows/test-all.yaml
vendored
|
@ -47,7 +47,6 @@ jobs:
|
|||
"ubuntu:bionic",
|
||||
"debian:11",
|
||||
"debian:10",
|
||||
"debian:9",
|
||||
"mcr.microsoft.com/devcontainers/base:ubuntu",
|
||||
"mcr.microsoft.com/devcontainers/base:debian",
|
||||
]
|
||||
|
|
1
.github/workflows/test-pr.yaml
vendored
1
.github/workflows/test-pr.yaml
vendored
|
@ -54,7 +54,6 @@ jobs:
|
|||
"ubuntu:bionic",
|
||||
"debian:11",
|
||||
"debian:10",
|
||||
"debian:9",
|
||||
"mcr.microsoft.com/devcontainers/base:ubuntu",
|
||||
"mcr.microsoft.com/devcontainers/base:debian",
|
||||
]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"id": "python",
|
||||
"version": "1.0.10",
|
||||
"version": "1.0.11",
|
||||
"name": "Python",
|
||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/python",
|
||||
"description": "Installs the provided version of Python, as well as PIPX, and other common Python utilities. JupyterLab is conditionally installed with the python feature. Note: May require source code compilation.",
|
||||
|
@ -60,7 +60,7 @@
|
|||
"ms-python.vscode-pylance"
|
||||
],
|
||||
"settings": {
|
||||
"python.defaultInterpreterPath": "/usr/local/bin/python",
|
||||
"python.defaultInterpreterPath": "/usr/local/python/current/bin/python",
|
||||
"python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8",
|
||||
"python.formatting.blackPath": "/usr/local/py-utils/bin/black",
|
||||
"python.formatting.yapfPath": "/usr/local/py-utils/bin/yapf",
|
||||
|
@ -74,6 +74,7 @@
|
|||
}
|
||||
},
|
||||
"installsAfter": [
|
||||
"ghcr.io/devcontainers/features/common-utils"
|
||||
"ghcr.io/devcontainers/features/common-utils",
|
||||
"ghcr.io/devcontainers/features/oryx"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -299,6 +299,9 @@ install_using_oryx() {
|
|||
echo "(!) Python version ${VERSION} already exists."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# The python install root path may not exist, so create it
|
||||
mkdir -p "${PYTHON_INSTALL_PATH}"
|
||||
oryx_install "python" "${VERSION}" "${INSTALL_PATH}" "lib" || return 1
|
||||
|
||||
ln -s "${INSTALL_PATH}/bin/idle3" "${INSTALL_PATH}/bin/idle"
|
||||
|
@ -339,11 +342,15 @@ install_python() {
|
|||
# If the os-provided versions are "good enough", detect that and bail out.
|
||||
if [ ${PYTHON_VERSION} = "os-provided" ] || [ ${PYTHON_VERSION} = "system" ]; then
|
||||
check_packages python3 python3-doc python3-pip python3-venv python3-dev python3-tk
|
||||
PYTHON_ROOT="/usr/bin"
|
||||
INSTALL_PATH="/usr"
|
||||
|
||||
ln -s "${PYTHON_ROOT}/python3" "${PYTHON_ROOT}/python"
|
||||
ln -s "${PYTHON_ROOT}/pydoc3" "${PYTHON_ROOT}/pydoc"
|
||||
ln -s "${PYTHON_ROOT}/python3-config" "${PYTHON_ROOT}/python-config"
|
||||
ln -s "${INSTALL_PATH}/bin/python3" "${INSTALL_PATH}/bin/python"
|
||||
ln -s "${INSTALL_PATH}/bin/pydoc3" "${INSTALL_PATH}/bin/pydoc"
|
||||
ln -s "${INSTALL_PATH}/bin/python3-config" "${INSTALL_PATH}/bin/python-config"
|
||||
|
||||
# Add the current symlink but point it to "/usr" since python is at /usr/bin/python
|
||||
mkdir -p "${PYTHON_INSTALL_PATH}"
|
||||
add_symlink
|
||||
|
||||
should_install_from_source=false
|
||||
elif [ "$(dpkg --print-architecture)" = "amd64" ] && [ "${USE_ORYX_IF_AVAILABLE}" = "true" ] && type oryx > /dev/null 2>&1; then
|
||||
|
|
0
test/python/install_additional_jupyterlab.sh
Normal file → Executable file
0
test/python/install_additional_jupyterlab.sh
Normal file → Executable file
33
test/python/install_additional_python.sh
Normal file → Executable file
33
test/python/install_additional_python.sh
Normal file → Executable file
|
@ -5,11 +5,34 @@ set -e
|
|||
# Optional: Import test library
|
||||
source dev-container-features-test-lib
|
||||
|
||||
check "python version 3.11 installed as default" python --version | grep 3.11
|
||||
check "python3 version 3.11 installed as default" python3 --version | grep 3.11
|
||||
check "python version 3.10.5 installed" ls -l /usr/local/python | grep 3.10.5
|
||||
check "python version 3.8.13 installed" ls -l /usr/local/python | grep 3.8.13
|
||||
check "python version 3.9.13 installed" ls -l /usr/local/python | grep 3.9.13
|
||||
check "python version 3.11 installed as default" bash -c "python --version | grep 3.11"
|
||||
check "python3 version 3.11 installed as default" bash -c "python3 --version | grep 3.11"
|
||||
check "python version 3.10.5 installed" bash -c "ls -l /usr/local/python | grep 3.10.5"
|
||||
check "python version 3.8 installed" bash -c "ls -l /usr/local/python | grep 3.8"
|
||||
check "python version 3.9.13 installed" bash -c "ls -l /usr/local/python | grep 3.9.13"
|
||||
|
||||
# Check that tools can execute - make sure something didn't get messed up in this scenario
|
||||
check "autopep8" autopep8 --version
|
||||
check "black" black --version
|
||||
check "yapf" yapf --version
|
||||
check "bandit" bandit --version
|
||||
check "flake8" flake8 --version
|
||||
check "mypy" mypy --version
|
||||
check "pycodestyle" pycodestyle --version
|
||||
check "pydocstyle" pydocstyle --version
|
||||
check "pylint" pylint --version
|
||||
|
||||
# Check paths in settings
|
||||
check "current symlink is correct" bash -c "which python | grep /usr/local/python/current/bin/python"
|
||||
check "which autopep8" bash -c "which autopep8 | grep /usr/local/py-utils/bin/autopep8"
|
||||
check "which black" bash -c "which black | grep /usr/local/py-utils/bin/black"
|
||||
check "which yapf" bash -c "which yapf | grep /usr/local/py-utils/bin/yapf"
|
||||
check "which bandit" bash -c "which bandit | grep /usr/local/py-utils/bin/bandit"
|
||||
check "which flake8" bash -c "which flake8 | grep /usr/local/py-utils/bin/flake8"
|
||||
check "which mypy" bash -c "which mypy | grep /usr/local/py-utils/bin/mypy"
|
||||
check "which pycodestyle" bash -c "which pycodestyle | grep /usr/local/py-utils/bin/pycodestyle"
|
||||
check "which pydocstyle" bash -c "which pydocstyle | grep /usr/local/py-utils/bin/pydocstyle"
|
||||
check "which pylint" bash -c "which pylint | grep /usr/local/py-utils/bin/pylint"
|
||||
|
||||
# Report result
|
||||
reportResults
|
||||
|
|
0
test/python/install_jupyterlab.sh
Normal file → Executable file
0
test/python/install_jupyterlab.sh
Normal file → Executable file
23
test/python/install_os_provided_python.sh
Normal file → Executable file
23
test/python/install_os_provided_python.sh
Normal file → Executable file
|
@ -10,7 +10,28 @@ check "python is installed" python --version
|
|||
check "pip is installed" pip --version
|
||||
check "pip is installed" pip3 --version
|
||||
|
||||
check "node is installed" node --version
|
||||
# Check that tools can execute
|
||||
check "autopep8" autopep8 --version
|
||||
check "black" black --version
|
||||
check "yapf" yapf --version
|
||||
check "bandit" bandit --version
|
||||
check "flake8" flake8 --version
|
||||
check "mypy" mypy --version
|
||||
check "pycodestyle" pycodestyle --version
|
||||
check "pydocstyle" pydocstyle --version
|
||||
check "pylint" pylint --version
|
||||
|
||||
# Check paths in settings
|
||||
check "current symlink is correct" bash -c "which python | grep /usr/local/python/current/bin/python"
|
||||
check "which autopep8" bash -c "which autopep8 | grep /usr/local/py-utils/bin/autopep8"
|
||||
check "which black" bash -c "which black | grep /usr/local/py-utils/bin/black"
|
||||
check "which yapf" bash -c "which yapf | grep /usr/local/py-utils/bin/yapf"
|
||||
check "which bandit" bash -c "which bandit | grep /usr/local/py-utils/bin/bandit"
|
||||
check "which flake8" bash -c "which flake8 | grep /usr/local/py-utils/bin/flake8"
|
||||
check "which mypy" bash -c "which mypy | grep /usr/local/py-utils/bin/mypy"
|
||||
check "which pycodestyle" bash -c "which pycodestyle | grep /usr/local/py-utils/bin/pycodestyle"
|
||||
check "which pydocstyle" bash -c "which pydocstyle | grep /usr/local/py-utils/bin/pydocstyle"
|
||||
check "which pylint" bash -c "which pylint | grep /usr/local/py-utils/bin/pylint"
|
||||
|
||||
# Report result
|
||||
reportResults
|
37
test/python/install_via_oryx.sh
Executable file
37
test/python/install_via_oryx.sh
Executable file
|
@ -0,0 +1,37 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# Optional: Import test library
|
||||
source dev-container-features-test-lib
|
||||
|
||||
check "python3 is installed" python3 --version
|
||||
check "python is installed" python --version
|
||||
check "pip is installed" pip --version
|
||||
check "pip is installed" pip3 --version
|
||||
|
||||
# Check that tools can execute
|
||||
check "autopep8" autopep8 --version
|
||||
check "black" black --version
|
||||
check "yapf" yapf --version
|
||||
check "bandit" bandit --version
|
||||
check "flake8" flake8 --version
|
||||
check "mypy" mypy --version
|
||||
check "pycodestyle" pycodestyle --version
|
||||
check "pydocstyle" pydocstyle --version
|
||||
check "pylint" pylint --version
|
||||
|
||||
# Check paths in settings
|
||||
check "current symlink is correct" bash -c "which python | grep /usr/local/python/current/bin/python"
|
||||
check "which autopep8" bash -c "which autopep8 | grep /usr/local/py-utils/bin/autopep8"
|
||||
check "which black" bash -c "which black | grep /usr/local/py-utils/bin/black"
|
||||
check "which yapf" bash -c "which yapf | grep /usr/local/py-utils/bin/yapf"
|
||||
check "which bandit" bash -c "which bandit | grep /usr/local/py-utils/bin/bandit"
|
||||
check "which flake8" bash -c "which flake8 | grep /usr/local/py-utils/bin/flake8"
|
||||
check "which mypy" bash -c "which mypy | grep /usr/local/py-utils/bin/mypy"
|
||||
check "which pycodestyle" bash -c "which pycodestyle | grep /usr/local/py-utils/bin/pycodestyle"
|
||||
check "which pydocstyle" bash -c "which pydocstyle | grep /usr/local/py-utils/bin/pydocstyle"
|
||||
check "which pylint" bash -c "which pylint | grep /usr/local/py-utils/bin/pylint"
|
||||
|
||||
# Report result
|
||||
reportResults
|
|
@ -33,8 +33,13 @@
|
|||
"install_os_provided_python": {
|
||||
"image": "mcr.microsoft.com/devcontainers/base:0-bullseye",
|
||||
"features": {
|
||||
"node": "latest",
|
||||
"python": "os-provided"
|
||||
}
|
||||
},
|
||||
"install_via_oryx": {
|
||||
"image": "mcr.microsoft.com/oryx/build:full-debian-bullseye",
|
||||
"features": {
|
||||
"python": "3.10"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -7,6 +7,31 @@ source dev-container-features-test-lib
|
|||
|
||||
# Definition specific tests
|
||||
check "version" python --version
|
||||
check "pip is installed" pip --version
|
||||
check "pip is installed" pip3 --version
|
||||
|
||||
# Check that tools can execute
|
||||
check "autopep8" autopep8 --version
|
||||
check "black" black --version
|
||||
check "yapf" yapf --version
|
||||
check "bandit" bandit --version
|
||||
check "flake8" flake8 --version
|
||||
check "mypy" mypy --version
|
||||
check "pycodestyle" pycodestyle --version
|
||||
check "pydocstyle" pydocstyle --version
|
||||
check "pylint" pylint --version
|
||||
|
||||
# Check paths in settings
|
||||
check "current symlink is correct" bash -c "which python | grep /usr/local/python/current/bin/python"
|
||||
check "which autopep8" bash -c "which autopep8 | grep /usr/local/py-utils/bin/autopep8"
|
||||
check "which black" bash -c "which black | grep /usr/local/py-utils/bin/black"
|
||||
check "which yapf" bash -c "which yapf | grep /usr/local/py-utils/bin/yapf"
|
||||
check "which bandit" bash -c "which bandit | grep /usr/local/py-utils/bin/bandit"
|
||||
check "which flake8" bash -c "which flake8 | grep /usr/local/py-utils/bin/flake8"
|
||||
check "which mypy" bash -c "which mypy | grep /usr/local/py-utils/bin/mypy"
|
||||
check "which pycodestyle" bash -c "which pycodestyle | grep /usr/local/py-utils/bin/pycodestyle"
|
||||
check "which pydocstyle" bash -c "which pydocstyle | grep /usr/local/py-utils/bin/pydocstyle"
|
||||
check "which pylint" bash -c "which pylint | grep /usr/local/py-utils/bin/pylint"
|
||||
|
||||
# Report result
|
||||
reportResults
|
||||
|
|
Loading…
Reference in a new issue