Merge pull request #2036 from github/backport-v2.22.11-b374143c1 #20
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test Python Package Installation | |
on: | |
push: | |
branches: [main, releases/v*] | |
pull_request: | |
# Run checks on reopened draft PRs to support triggering PR checks on draft PRs that were opened | |
# by other workflows. | |
types: [opened, synchronize, reopened, ready_for_review] | |
paths: | |
# Changes to this workflow. | |
- '.github/workflows/python-deps.yml' | |
# Changes to the Python package installation scripts and their tests. | |
- 'python-setup/**' | |
# Changes to the default CodeQL bundle version. | |
- '**/defaults.json' | |
schedule: | |
# Weekly on Monday. | |
- cron: '0 0 * * 1' | |
workflow_dispatch: | |
jobs: | |
test-setup-python-scripts: | |
timeout-minutes: 45 | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-20.04, ubuntu-22.04, macos-latest] | |
python_deps_type: [pipenv, poetry, requirements, setup_py] | |
python_version: [3] | |
env: | |
PYTHON_DEPS_TYPE: ${{ matrix.python_deps_type }} | |
PYTHON_VERSION: ${{ matrix.python_version }} | |
steps: | |
- name: Setup Python on MacOS | |
uses: actions/setup-python@v5 | |
if: | | |
matrix.os == 'macos-latest' && ( | |
matrix.version == 'stable-20220908' || | |
matrix.version == 'stable-20221211' || | |
matrix.version == 'stable-20230418' || | |
matrix.version == 'stable-v2.13.5' || | |
matrix.version == 'stable-v2.14.6') | |
with: | |
python-version: '3.11' | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v4 | |
- name: Initialize CodeQL | |
uses: ./init | |
id: init | |
with: | |
tools: latest | |
languages: python | |
setup-python-dependencies: false | |
- name: Test Auto Package Installation | |
run: | | |
set -x | |
$GITHUB_WORKSPACE/python-setup/install_tools.sh | |
cd $GITHUB_WORKSPACE/python-setup/tests/${PYTHON_DEPS_TYPE}/requests-${PYTHON_VERSION} | |
case ${{ matrix.os }} in | |
ubuntu-20.04*) basePath="/opt";; | |
ubuntu-22.04*) basePath="/opt";; | |
macos-latest*) basePath="/Users/runner";; | |
esac | |
echo ${basePath} | |
$GITHUB_WORKSPACE/python-setup/auto_install_packages.py "$(dirname ${{steps.init.outputs.codeql-path}})" | |
- name: Setup for extractor | |
run: | | |
echo $CODEQL_PYTHON | |
# only run if $CODEQL_PYTHON is set | |
if [ ! -z $CODEQL_PYTHON ]; then | |
$GITHUB_WORKSPACE/python-setup/tests/from_python_exe.py $CODEQL_PYTHON; | |
fi | |
- name: Verify packages installed | |
run: | | |
$GITHUB_WORKSPACE/python-setup/tests/check_requests.sh ${PYTHON_VERSION} 2.31.0 | |
# This one shouldn't fail, but also won't install packages | |
test-setup-python-scripts-non-standard-location: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-20.04, ubuntu-22.04, macos-latest] | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v4 | |
- name: Initialize CodeQL | |
uses: ./init | |
id: init | |
with: | |
tools: latest | |
languages: python | |
setup-python-dependencies: false | |
- name: Test Auto Package Installation | |
run: | | |
set -x | |
$GITHUB_WORKSPACE/python-setup/install_tools.sh | |
cd $GITHUB_WORKSPACE/python-setup/tests/requirements/non-standard-location | |
case ${{ matrix.os }} in | |
ubuntu-20.04*) basePath="/opt";; | |
ubuntu-22.04*) basePath="/opt";; | |
macos-latest*) basePath="/Users/runner";; | |
esac | |
echo ${basePath} | |
$GITHUB_WORKSPACE/python-setup/auto_install_packages.py "$(dirname ${{steps.init.outputs.codeql-path}})" | |
- name: Setup for extractor | |
run: | | |
echo $CODEQL_PYTHON | |
# only run if $CODEQL_PYTHON is set | |
if [ ! -z $CODEQL_PYTHON ]; then | |
$GITHUB_WORKSPACE/python-setup/tests/from_python_exe.py $CODEQL_PYTHON; | |
fi | |
- name: Verify packages installed | |
run: | | |
test -z $LGTM_INDEX_IMPORT_PATH | |
test-setup-python-scripts-windows: | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python_deps_type: [pipenv, poetry, requirements, setup_py] | |
python_version: [3] | |
env: | |
CODEQL_ACTION_TEST_MODE: true | |
PYTHON_DEPS_TYPE: ${{ matrix.python_deps_type }} | |
PYTHON_VERSION: ${{ matrix.python_version }} | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Initialize CodeQL | |
id: init | |
uses: ./init | |
with: | |
tools: latest | |
languages: python | |
setup-python-dependencies: false | |
- name: Test Auto Package Installation | |
env: | |
CODEQL_PATH: ${{ steps.init.outputs.codeql-path }} | |
run: | | |
$cmd = $Env:GITHUB_WORKSPACE + "\\python-setup\\install_tools.ps1" | |
powershell -File $cmd | |
cd $Env:GITHUB_WORKSPACE\\python-setup/tests/$Env:PYTHON_DEPS_TYPE/requests-$Env:PYTHON_VERSION | |
$codeql_dist = (get-item $Env:CODEQL_PATH).Directory.FullName | |
py -3 $Env:GITHUB_WORKSPACE\\python-setup\\auto_install_packages.py $codeql_dist | |
- name: Setup for extractor | |
run: | | |
echo $Env:CODEQL_PYTHON | |
py -3 $Env:GITHUB_WORKSPACE\\python-setup\\tests\\from_python_exe.py $Env:CODEQL_PYTHON | |
- name: Verify packages installed | |
run: | | |
$cmd = $Env:GITHUB_WORKSPACE + "\\python-setup\\tests\\check_requests.ps1" | |
powershell -File $cmd $Env:PYTHON_VERSION 2.31.0 |