mirror of
https://github.com/github/codeql-action.git
synced 2025-12-26 17:20:10 +08:00
Compare commits
8 Commits
daverlo/py
...
daverlo/te
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
068ef74bd6 | ||
|
|
afde6a46b1 | ||
|
|
5e2245cc23 | ||
|
|
67ddca1d9c | ||
|
|
18312707fe | ||
|
|
5419fcd735 | ||
|
|
dffce9945c | ||
|
|
6645c550ef |
64
.github/workflows/python-deps.yml
vendored
Normal file
64
.github/workflows/python-deps.yml
vendored
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
name: Test Python Package Installation
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
test-setup-python-scripts:
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest,windows-latest,macos-latest]
|
||||||
|
include:
|
||||||
|
- test_dir: python-setup/tests/pipenv/requests-2
|
||||||
|
test_script: $GITHUB_WORKSPACE/python-setup/tests/check_requests_123.sh 2
|
||||||
|
- test_dir: python-setup/tests/pipenv/requests-3
|
||||||
|
test_script: $GITHUB_WORKSPACE/python-setup/tests/check_requests_123.sh 3
|
||||||
|
|
||||||
|
- test_dir: python-setup/tests/poetry/requests-2
|
||||||
|
test_script: $GITHUB_WORKSPACE/python-setup/tests/check_requests_123.sh 2
|
||||||
|
- test_dir: python-setup/tests/poetry/requests-3
|
||||||
|
test_script: $GITHUB_WORKSPACE/python-setup/tests/check_requests_123.sh 3
|
||||||
|
|
||||||
|
- test_dir: python-setup/tests/requirements/requests-2
|
||||||
|
test_script: $GITHUB_WORKSPACE/python-setup/tests/check_requests_123.sh 2
|
||||||
|
- test_dir: python-setup/tests/requirements/requests-3
|
||||||
|
test_script: $GITHUB_WORKSPACE/python-setup/tests/check_requests_123.sh 3
|
||||||
|
|
||||||
|
- test_dir: python-setup/tests/setup_py/requests-2
|
||||||
|
test_script: $GITHUB_WORKSPACE/python-setup/tests/check_requests_123.sh 2
|
||||||
|
- test_dir: python-setup/tests/setup_py/requests-3
|
||||||
|
test_script: $GITHUB_WORKSPACE/python-setup/tests/check_requests_123.sh 3
|
||||||
|
|
||||||
|
# This one shouldn't fail, but also won't install packages
|
||||||
|
- test_dir: python-setup/tests/requirements/non-standard-location
|
||||||
|
test_script: test -z $LGTM_INDEX_IMPORT_PATH
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v1
|
||||||
|
with:
|
||||||
|
languages: python
|
||||||
|
|
||||||
|
- name: Test Auto Package Installation
|
||||||
|
run: |
|
||||||
|
set -x
|
||||||
|
$GITHUB_WORKSPACE/python-setup/install_tools.sh
|
||||||
|
echo -e '\n\n\n\n\n' && sleep 0.5
|
||||||
|
cd $GITHUB_WORKSPACE/${{ matrix.test_dir }}
|
||||||
|
$GITHUB_WORKSPACE/python-setup/auto_install_packages.py /opt/hostedtoolcache/CodeQL/0.0.0-20200826/x64/codeql/
|
||||||
|
/bin/true
|
||||||
|
- name: Setup for extractor
|
||||||
|
run: |
|
||||||
|
echo $CODEQL_PYTHON
|
||||||
|
# only run if $CODEQL_PYTHON is set
|
||||||
|
test ! -z $CODEQL_PYTHON && $GITHUB_WORKSPACE/python-setup/tests/from_python_exe.py $CODEQL_PYTHON || /bin/true
|
||||||
|
- name: Verify packages installed
|
||||||
|
run: |
|
||||||
|
${{ matrix.test_script }}
|
||||||
4
lib/init.js
generated
4
lib/init.js
generated
@@ -138,7 +138,7 @@ async function installPythonDeps(codeql, logger) {
|
|||||||
// This script tries to install some needed tools in the runner. It should not fail, but if it does
|
// This script tries to install some needed tools in the runner. It should not fail, but if it does
|
||||||
// we just abort the process without failing the action
|
// we just abort the process without failing the action
|
||||||
logger.endGroup();
|
logger.endGroup();
|
||||||
logger.warning("Unable to download and extract the tools needed for installing the python dependecies");
|
logger.warning("Unable to download and extract the tools needed for installing the python dependecies. You can call this action with 'setup-python-dependencies: false' to disable this process.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Install dependencies
|
// Install dependencies
|
||||||
@@ -147,7 +147,7 @@ async function installPythonDeps(codeql, logger) {
|
|||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
logger.endGroup();
|
logger.endGroup();
|
||||||
logger.warning("We were unable to install your python dependencies.");
|
logger.warning("We were unable to install your python dependencies. You can call this action with 'setup-python-dependencies: false' to disable this process.");
|
||||||
}
|
}
|
||||||
logger.endGroup();
|
logger.endGroup();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
||||||
@@ -4,6 +4,7 @@ import sys
|
|||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
from tempfile import mkdtemp
|
from tempfile import mkdtemp
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
import extractor_version
|
import extractor_version
|
||||||
|
|
||||||
@@ -101,7 +102,7 @@ def install_with_setup_py(version: int):
|
|||||||
return venv_python
|
return venv_python
|
||||||
|
|
||||||
|
|
||||||
def install_packages() -> str:
|
def install_packages(codeql_base_dir) -> Optional[str]:
|
||||||
if os.path.exists('poetry.lock'):
|
if os.path.exists('poetry.lock'):
|
||||||
print('Found poetry.lock, will install packages with poetry', flush=True)
|
print('Found poetry.lock, will install packages with poetry', flush=True)
|
||||||
return install_packages_with_poetry()
|
return install_packages_with_poetry()
|
||||||
@@ -113,7 +114,8 @@ def install_packages() -> str:
|
|||||||
print('Found Pipfile, will install packages with Pipenv', flush=True)
|
print('Found Pipfile, will install packages with Pipenv', flush=True)
|
||||||
return install_packages_with_pipenv()
|
return install_packages_with_pipenv()
|
||||||
|
|
||||||
version = extractor_version.get_extractor_version(sys.argv[1], quiet=False)
|
# get_extractor_version returns the Python version the extractor thinks this repo is using
|
||||||
|
version = extractor_version.get_extractor_version(codeql_base_dir, quiet=False)
|
||||||
|
|
||||||
if os.path.exists('requirements.txt'):
|
if os.path.exists('requirements.txt'):
|
||||||
print('Found requirements.txt, will install packages with pip', flush=True)
|
print('Found requirements.txt, will install packages with pip', flush=True)
|
||||||
@@ -124,17 +126,20 @@ def install_packages() -> str:
|
|||||||
return install_with_setup_py(version)
|
return install_with_setup_py(version)
|
||||||
|
|
||||||
print("was not able to install packages automatically", flush=True)
|
print("was not able to install packages automatically", flush=True)
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
if len(sys.argv) != 2:
|
if len(sys.argv) != 2:
|
||||||
sys.exit('Must provide base directory for codeql tool as only argument')
|
sys.exit('Must provide base directory for codeql tool as only argument')
|
||||||
|
|
||||||
|
codeql_base_dir = sys.argv[1]
|
||||||
|
|
||||||
# The binaries for packages installed with `pip install --user` are not available on
|
# The binaries for packages installed with `pip install --user` are not available on
|
||||||
# PATH by default, so we need to manually add them.
|
# PATH by default, so we need to manually add them.
|
||||||
os.environ['PATH'] = os.path.expanduser('~/.local/bin') + os.pathsep + os.environ['PATH']
|
os.environ['PATH'] = os.path.expanduser('~/.local/bin') + os.pathsep + os.environ['PATH']
|
||||||
|
|
||||||
python_executable_path = install_packages()
|
python_executable_path = install_packages(codeql_base_dir)
|
||||||
|
|
||||||
if python_executable_path is not None:
|
if python_executable_path is not None:
|
||||||
print("Setting CODEQL_PYTHON={}".format(python_executable_path))
|
print("Setting CODEQL_PYTHON={}".format(python_executable_path))
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ def suppress_stdout_stderr():
|
|||||||
|
|
||||||
|
|
||||||
def get_extractor_version(codeql_base_dir: str, quiet: bool = True) -> int:
|
def get_extractor_version(codeql_base_dir: str, quiet: bool = True) -> int:
|
||||||
|
|
||||||
extractor_dir = os.path.join(codeql_base_dir, 'python', 'tools')
|
extractor_dir = os.path.join(codeql_base_dir, 'python', 'tools')
|
||||||
sys.path = [extractor_dir] + sys.path
|
sys.path = [extractor_dir] + sys.path
|
||||||
|
|
||||||
|
|||||||
@@ -18,10 +18,7 @@ python3 -m pip install --user --upgrade pip setuptools wheel
|
|||||||
python2 -m pip install --user virtualenv
|
python2 -m pip install --user virtualenv
|
||||||
python3 -m pip install --user virtualenv
|
python3 -m pip install --user virtualenv
|
||||||
|
|
||||||
# venv is required for installation of poetry or pipenv (I forgot which)
|
# We install poetry with pip instead of the recommended way, since the recommended way
|
||||||
sudo apt-get install -y python3-venv
|
|
||||||
|
|
||||||
# We're install poetry with pip instead of the recommended way, since the recommended way
|
|
||||||
# caused some problem since `poetry run` gives output like:
|
# caused some problem since `poetry run` gives output like:
|
||||||
#
|
#
|
||||||
# /root/.poetry/lib/poetry/_vendor/py2.7/subprocess32.py:149: RuntimeWarning: The _posixsubprocess module is not being used. Child process reliability may suffer if your program uses threads.
|
# /root/.poetry/lib/poetry/_vendor/py2.7/subprocess32.py:149: RuntimeWarning: The _posixsubprocess module is not being used. Child process reliability may suffer if your program uses threads.
|
||||||
|
|||||||
32
python-setup/tests/check_requests_123.sh
Executable file
32
python-setup/tests/check_requests_123.sh
Executable file
@@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
|
||||||
|
EXPECTED_VERSION=$1
|
||||||
|
|
||||||
|
FOUND_VERSION="$LGTM_PYTHON_SETUP_VERSION"
|
||||||
|
FOUND_PYTHONPATH="$LGTM_INDEX_IMPORT_PATH"
|
||||||
|
|
||||||
|
echo "FOUND_VERSION=${FOUND_VERSION} FOUND_PYTHONPATH=${FOUND_PYTHONPATH} "
|
||||||
|
|
||||||
|
if [[ $FOUND_VERSION != $EXPECTED_VERSION ]]; then
|
||||||
|
echo "Script told us to use Python ${FOUND_VERSION}, but expected ${EXPECTED_VERSION}"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "Script told us to use Python ${FOUND_VERSION}, which was expected"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PYTHON_EXE="python${EXPECTED_VERSION}"
|
||||||
|
|
||||||
|
INSTALLED_REQUESTS_VERSION=$(PYTHONPATH="${FOUND_PYTHONPATH}" "${PYTHON_EXE}" -c 'import requests; print(requests.__version__)')
|
||||||
|
|
||||||
|
EXPECTED_REQUESTS="1.2.3"
|
||||||
|
|
||||||
|
if [[ "$INSTALLED_REQUESTS_VERSION" != "$EXPECTED_REQUESTS" ]]; then
|
||||||
|
echo "Using ${FOUND_PYTHONPATH} as PYTHONPATH, we found version $INSTALLED_REQUESTS_VERSION of requests, but expected $EXPECTED_REQUESTS"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "Using ${FOUND_PYTHONPATH} as PYTHONPATH, we found version $INSTALLED_REQUESTS_VERSION of requests, which was expected"
|
||||||
|
fi
|
||||||
31
python-setup/tests/from_python_exe.py
Executable file
31
python-setup/tests/from_python_exe.py
Executable file
@@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
from typing import Tuple
|
||||||
|
|
||||||
|
def get_details(path_to_python_exe: str) -> Tuple[str, str]:
|
||||||
|
import_path = subprocess.check_output(
|
||||||
|
[
|
||||||
|
path_to_python_exe,
|
||||||
|
"-c",
|
||||||
|
"import os; import pip; print(os.path.dirname(os.path.dirname(pip.__file__)))",
|
||||||
|
],
|
||||||
|
stdin=subprocess.DEVNULL,
|
||||||
|
)
|
||||||
|
version = subprocess.check_output(
|
||||||
|
[path_to_python_exe, "-c", "import sys; print(sys.version_info[0])"],
|
||||||
|
stdin=subprocess.DEVNULL,
|
||||||
|
)
|
||||||
|
|
||||||
|
return version.decode("utf-8").strip(), import_path.decode("utf-8").strip()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
version, import_path = get_details(sys.argv[1])
|
||||||
|
|
||||||
|
print("Setting LGTM_PYTHON_SETUP_VERSION={}".format(version))
|
||||||
|
print("::set-env name=LGTM_PYTHON_SETUP_VERSION::{}".format(version))
|
||||||
|
|
||||||
|
print("Setting LGTM_INDEX_IMPORT_PATH={}".format(import_path))
|
||||||
|
print("::set-env name=LGTM_INDEX_IMPORT_PATH::{}".format(import_path))
|
||||||
12
python-setup/tests/pipenv/python-3.8/Pipfile
Normal file
12
python-setup/tests/pipenv/python-3.8/Pipfile
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
[[source]]
|
||||||
|
name = "pypi"
|
||||||
|
url = "https://pypi.org/simple"
|
||||||
|
verify_ssl = true
|
||||||
|
|
||||||
|
[dev-packages]
|
||||||
|
|
||||||
|
[packages]
|
||||||
|
requests = "*"
|
||||||
|
|
||||||
|
[requires]
|
||||||
|
python_version = "3.8"
|
||||||
28
python-setup/tests/pipenv/python-3.8/Pipfile.lock
generated
Normal file
28
python-setup/tests/pipenv/python-3.8/Pipfile.lock
generated
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"_meta": {
|
||||||
|
"hash": {
|
||||||
|
"sha256": "2296b1fab66570fa3660c5e6a4e923332dcd7785814624c584be6623bc62c0e7"
|
||||||
|
},
|
||||||
|
"pipfile-spec": 6,
|
||||||
|
"requires": {
|
||||||
|
"python_version": "3.8"
|
||||||
|
},
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"name": "pypi",
|
||||||
|
"url": "https://pypi.org/simple",
|
||||||
|
"verify_ssl": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"requests": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:156bf3ec27ba9ec7e0cf8fbe02808718099d218de403eb64a714d73ba1a29ab1"
|
||||||
|
],
|
||||||
|
"index": "pypi",
|
||||||
|
"version": "==1.2.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"develop": {}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
[[source]]
|
||||||
|
name = "pypi"
|
||||||
|
url = "https://pypi.org/simple"
|
||||||
|
verify_ssl = true
|
||||||
|
|
||||||
|
[dev-packages]
|
||||||
|
|
||||||
|
[packages]
|
||||||
|
requests = "*"
|
||||||
|
|
||||||
|
[requires]
|
||||||
|
python_version = "3.100"
|
||||||
28
python-setup/tests/pipenv/python-version-not-available/Pipfile.lock
generated
Normal file
28
python-setup/tests/pipenv/python-version-not-available/Pipfile.lock
generated
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"_meta": {
|
||||||
|
"hash": {
|
||||||
|
"sha256": "2296b1fab66570fa3660c5e6a4e923332dcd7785814624c584be6623bc62c0e7"
|
||||||
|
},
|
||||||
|
"pipfile-spec": 6,
|
||||||
|
"requires": {
|
||||||
|
"python_version": "3.8"
|
||||||
|
},
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"name": "pypi",
|
||||||
|
"url": "https://pypi.org/simple",
|
||||||
|
"verify_ssl": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"requests": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:156bf3ec27ba9ec7e0cf8fbe02808718099d218de403eb64a714d73ba1a29ab1"
|
||||||
|
],
|
||||||
|
"index": "pypi",
|
||||||
|
"version": "==1.2.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"develop": {}
|
||||||
|
}
|
||||||
12
python-setup/tests/pipenv/requests-2/Pipfile
Normal file
12
python-setup/tests/pipenv/requests-2/Pipfile
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
[[source]]
|
||||||
|
name = "pypi"
|
||||||
|
url = "https://pypi.org/simple"
|
||||||
|
verify_ssl = true
|
||||||
|
|
||||||
|
[dev-packages]
|
||||||
|
|
||||||
|
[packages]
|
||||||
|
requests = "*"
|
||||||
|
|
||||||
|
[requires]
|
||||||
|
python_version = "2.7"
|
||||||
28
python-setup/tests/pipenv/requests-2/Pipfile.lock
generated
Normal file
28
python-setup/tests/pipenv/requests-2/Pipfile.lock
generated
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"_meta": {
|
||||||
|
"hash": {
|
||||||
|
"sha256": "fba50410545d38a2f88b8d6964eb292055389e363b5c75a56b01ec80e7de14c1"
|
||||||
|
},
|
||||||
|
"pipfile-spec": 6,
|
||||||
|
"requires": {
|
||||||
|
"python_version": "2.7"
|
||||||
|
},
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"name": "pypi",
|
||||||
|
"url": "https://pypi.org/simple",
|
||||||
|
"verify_ssl": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"requests": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:156bf3ec27ba9ec7e0cf8fbe02808718099d218de403eb64a714d73ba1a29ab1"
|
||||||
|
],
|
||||||
|
"index": "pypi",
|
||||||
|
"version": "==1.2.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"develop": {}
|
||||||
|
}
|
||||||
11
python-setup/tests/pipenv/requests-3/Pipfile
Normal file
11
python-setup/tests/pipenv/requests-3/Pipfile
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
[[source]]
|
||||||
|
name = "pypi"
|
||||||
|
url = "https://pypi.org/simple"
|
||||||
|
verify_ssl = true
|
||||||
|
|
||||||
|
[dev-packages]
|
||||||
|
|
||||||
|
[packages]
|
||||||
|
requests = "*"
|
||||||
|
|
||||||
|
[requires]
|
||||||
28
python-setup/tests/pipenv/requests-3/Pipfile.lock
generated
Normal file
28
python-setup/tests/pipenv/requests-3/Pipfile.lock
generated
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"_meta": {
|
||||||
|
"hash": {
|
||||||
|
"sha256": "2296b1fab66570fa3660c5e6a4e923332dcd7785814624c584be6623bc62c0e7"
|
||||||
|
},
|
||||||
|
"pipfile-spec": 6,
|
||||||
|
"requires": {
|
||||||
|
"python_version": "3.8"
|
||||||
|
},
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"name": "pypi",
|
||||||
|
"url": "https://pypi.org/simple",
|
||||||
|
"verify_ssl": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"requests": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:156bf3ec27ba9ec7e0cf8fbe02808718099d218de403eb64a714d73ba1a29ab1"
|
||||||
|
],
|
||||||
|
"index": "pypi",
|
||||||
|
"version": "==1.2.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"develop": {}
|
||||||
|
}
|
||||||
16
python-setup/tests/poetry/python-3.8/poetry.lock
generated
Normal file
16
python-setup/tests/poetry/python-3.8/poetry.lock
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "Python HTTP for Humans."
|
||||||
|
name = "requests"
|
||||||
|
optional = false
|
||||||
|
python-versions = "^3.8"
|
||||||
|
version = "1.2.3"
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
content-hash = "b1abdce30bbdad3ac786dafe6840129df522cae3c5988f9ba8061320e3c1a34e"
|
||||||
|
python-versions = "^3.8"
|
||||||
|
|
||||||
|
[metadata.files]
|
||||||
|
requests = [
|
||||||
|
{file = "requests-1.2.3.tar.gz", hash = "sha256:156bf3ec27ba9ec7e0cf8fbe02808718099d218de403eb64a714d73ba1a29ab1"},
|
||||||
|
]
|
||||||
15
python-setup/tests/poetry/python-3.8/pyproject.toml
Normal file
15
python-setup/tests/poetry/python-3.8/pyproject.toml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
[tool.poetry]
|
||||||
|
name = "autoinstall-test"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = ""
|
||||||
|
authors = ["Your Name <you@example.com>"]
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.8"
|
||||||
|
requests = "*"
|
||||||
|
|
||||||
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry>=0.12"]
|
||||||
|
build-backend = "poetry.masonry.api"
|
||||||
16
python-setup/tests/poetry/python-version-not-available/poetry.lock
generated
Normal file
16
python-setup/tests/poetry/python-version-not-available/poetry.lock
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "Python HTTP for Humans."
|
||||||
|
name = "requests"
|
||||||
|
optional = false
|
||||||
|
python-versions = "^3.100"
|
||||||
|
version = "1.2.3"
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
content-hash = "b1abdce30bbdad3ac786dafe6840129df522cae3c5988f9ba8061320e3c1a34e"
|
||||||
|
python-versions = "^3.100"
|
||||||
|
|
||||||
|
[metadata.files]
|
||||||
|
requests = [
|
||||||
|
{file = "requests-1.2.3.tar.gz", hash = "sha256:156bf3ec27ba9ec7e0cf8fbe02808718099d218de403eb64a714d73ba1a29ab1"},
|
||||||
|
]
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
[tool.poetry]
|
||||||
|
name = "autoinstall-test"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = ""
|
||||||
|
authors = ["Your Name <you@example.com>"]
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.100"
|
||||||
|
requests = "*"
|
||||||
|
|
||||||
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry>=0.12"]
|
||||||
|
build-backend = "poetry.masonry.api"
|
||||||
16
python-setup/tests/poetry/requests-2/poetry.lock
generated
Normal file
16
python-setup/tests/poetry/requests-2/poetry.lock
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "Python HTTP for Humans."
|
||||||
|
name = "requests"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
version = "1.2.3"
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
content-hash = "b8c27a00aece20cb2ff6b3dcd394b1b5ef5e4acc3d7a059cfeb9f9cc11c9eff4"
|
||||||
|
python-versions = "^2.7"
|
||||||
|
|
||||||
|
[metadata.files]
|
||||||
|
requests = [
|
||||||
|
{file = "requests-1.2.3.tar.gz", hash = "sha256:156bf3ec27ba9ec7e0cf8fbe02808718099d218de403eb64a714d73ba1a29ab1"},
|
||||||
|
]
|
||||||
15
python-setup/tests/poetry/requests-2/pyproject.toml
Normal file
15
python-setup/tests/poetry/requests-2/pyproject.toml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
[tool.poetry]
|
||||||
|
name = "autoinstall-test"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = ""
|
||||||
|
authors = ["Your Name <you@example.com>"]
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^2.7"
|
||||||
|
requests = "*"
|
||||||
|
|
||||||
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry>=0.12"]
|
||||||
|
build-backend = "poetry.masonry.api"
|
||||||
16
python-setup/tests/poetry/requests-3/poetry.lock
generated
Normal file
16
python-setup/tests/poetry/requests-3/poetry.lock
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "Python HTTP for Humans."
|
||||||
|
name = "requests"
|
||||||
|
optional = false
|
||||||
|
python-versions = "^3.5"
|
||||||
|
version = "1.2.3"
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
content-hash = "b1abdce30bbdad3ac786dafe6840129df522cae3c5988f9ba8061320e3c1a34e"
|
||||||
|
python-versions = "^3.5"
|
||||||
|
|
||||||
|
[metadata.files]
|
||||||
|
requests = [
|
||||||
|
{file = "requests-1.2.3.tar.gz", hash = "sha256:156bf3ec27ba9ec7e0cf8fbe02808718099d218de403eb64a714d73ba1a29ab1"},
|
||||||
|
]
|
||||||
15
python-setup/tests/poetry/requests-3/pyproject.toml
Normal file
15
python-setup/tests/poetry/requests-3/pyproject.toml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
[tool.poetry]
|
||||||
|
name = "autoinstall-test"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = ""
|
||||||
|
authors = ["Your Name <you@example.com>"]
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.5"
|
||||||
|
requests = "*"
|
||||||
|
|
||||||
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry>=0.12"]
|
||||||
|
build-backend = "poetry.masonry.api"
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# non-existing package
|
||||||
|
ajsdiofjasodinfkajsndfoiuqwhefoanisdfojnasdofas
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# valid package with invalid version
|
||||||
|
requests==10000
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
requests==1.2.3
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
print('hello')
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
requests==1.2.3
|
||||||
3
python-setup/tests/requirements/requests-2/setup.py
Normal file
3
python-setup/tests/requirements/requests-2/setup.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# fake setup.py with Trove classifier to fool Python extractor to believe this is Python 2 for sure
|
||||||
|
|
||||||
|
# Programming Language :: Python :: 2.7
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
requests==1.2.3
|
||||||
3
python-setup/tests/requirements/requests-3/setup.py
Normal file
3
python-setup/tests/requirements/requests-3/setup.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# fake setup.py with Trove classifier to fool Python extractor to believe this is Python 3 for sure
|
||||||
|
|
||||||
|
# Programming Language :: Python :: 3.7
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
from setuptools import setup
|
||||||
|
|
||||||
|
# has fake Trove classifier to fool Python extractor to believe this is Python 3 for sure
|
||||||
|
|
||||||
|
# Programming Language :: Python :: 3.7
|
||||||
|
|
||||||
|
setup(
|
||||||
|
name="example-setup.py",
|
||||||
|
install_requires=[],
|
||||||
|
extras_require={"all": ["requests==1.2.3"]}
|
||||||
|
)
|
||||||
1
python-setup/tests/setup_py/invalid-file/setup.py
Normal file
1
python-setup/tests/setup_py/invalid-file/setup.py
Normal file
@@ -0,0 +1 @@
|
|||||||
|
raise Exception("some kind of error")
|
||||||
6
python-setup/tests/setup_py/invalid-version/setup.py
Normal file
6
python-setup/tests/setup_py/invalid-version/setup.py
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
from setuptools import setup
|
||||||
|
|
||||||
|
setup(
|
||||||
|
name="example-setup.py",
|
||||||
|
install_requires=["requests==10000"],
|
||||||
|
)
|
||||||
12
python-setup/tests/setup_py/requests-2/setup.py
Normal file
12
python-setup/tests/setup_py/requests-2/setup.py
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
from setuptools import setup
|
||||||
|
|
||||||
|
# has fake Trove classifier to fool Python extractor to believe this is Python 2 for sure
|
||||||
|
|
||||||
|
# Programming Language :: Python :: 2.7
|
||||||
|
|
||||||
|
|
||||||
|
setup(
|
||||||
|
name="example-setup.py",
|
||||||
|
install_requires=["requests==1.2.3"],
|
||||||
|
python_requires=">=2.7, <3",
|
||||||
|
)
|
||||||
12
python-setup/tests/setup_py/requests-3/setup.py
Normal file
12
python-setup/tests/setup_py/requests-3/setup.py
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
from setuptools import setup
|
||||||
|
|
||||||
|
# has fake Trove classifier to fool Python extractor to believe this is Python 3 for sure
|
||||||
|
|
||||||
|
# Programming Language :: Python :: 3.7
|
||||||
|
|
||||||
|
|
||||||
|
setup(
|
||||||
|
name="example-setup.py",
|
||||||
|
install_requires=["requests==1.2.3"],
|
||||||
|
python_requires='>=3.5',
|
||||||
|
)
|
||||||
12
python-setup/tests/setup_py/wrong-python-version/setup.py
Normal file
12
python-setup/tests/setup_py/wrong-python-version/setup.py
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
from setuptools import setup
|
||||||
|
|
||||||
|
# has fake Trove classifier to fool Python extractor to believe this is Python 3 for sure
|
||||||
|
|
||||||
|
# Programming Language :: Python :: 3.7
|
||||||
|
|
||||||
|
|
||||||
|
setup(
|
||||||
|
name="example-setup.py",
|
||||||
|
install_requires=["requests==1.2.3"],
|
||||||
|
python_requires=">=2.7, <3",
|
||||||
|
)
|
||||||
@@ -206,7 +206,7 @@ export async function installPythonDeps(codeql: CodeQL, logger: Logger) {
|
|||||||
// we just abort the process without failing the action
|
// we just abort the process without failing the action
|
||||||
logger.endGroup();
|
logger.endGroup();
|
||||||
logger.warning(
|
logger.warning(
|
||||||
"Unable to download and extract the tools needed for installing the python dependecies"
|
"Unable to download and extract the tools needed for installing the python dependecies. You can call this action with 'setup-python-dependencies: false' to disable this process."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -219,7 +219,9 @@ export async function installPythonDeps(codeql: CodeQL, logger: Logger) {
|
|||||||
).exec();
|
).exec();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.endGroup();
|
logger.endGroup();
|
||||||
logger.warning("We were unable to install your python dependencies.");
|
logger.warning(
|
||||||
|
"We were unable to install your python dependencies. You can call this action with 'setup-python-dependencies: false' to disable this process."
|
||||||
|
);
|
||||||
}
|
}
|
||||||
logger.endGroup();
|
logger.endGroup();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user