Skip to content

Commit 1cf3072

Browse files
authored
{Package} Migrate CLI packaging system to PEP420 (Azure#14372)
* init pep420 change * fix linter error * fix another linter error * elegant way to handle __main__.py * remove nspkg * refactor azure_bdist_wheel to fit wheel 0.34.2 * add namespace package __init__.py to sdist * fix merge conflict * fix generic update problem * fix merge conflict * upgrade telemetry version * upgrade telemetry version * rollback some useless change * build yum/deb/homebrew etx * use template to generate formula * update build.cmd * update build scripts * upgrade azure-mutliapi-storage to 0.3.6 * fix debian build script * fix merge conflict * init pep420 change * fix linter error * fix another linter error * elegant way to handle __main__.py * remove nspkg * refactor azure_bdist_wheel to fit wheel 0.34.2 * add namespace package __init__.py to sdist * fix merge conflict * fix generic update problem * fix merge conflict * upgrade telemetry version * upgrade telemetry version * rollback some useless change * build yum/deb/homebrew etx * use template to generate formula * update build.cmd * update build scripts * upgrade azure-mutliapi-storage to 0.3.6 * fix debian build script * fix merge conflict * fix merge conflict * fix generic update test problem * remove extra __init__.py * remove __init__.pyc file in debian and rpm * update build wheel stratages * update version * update build scripts * fix webapp test error * add __main__.py in sdist * add test homebrew package scripts * update version value in __main__.py * make test_homebrew_package.sh executable * fix homebrew permission problem * fix error * skip some acr tests * fix style error * skip config tests * fix config test MAC error * fix role config test error * fix test error * fix test error * workaround for vsts bug * fix test error * fix homebrew test error * fix configure test error * update homebrew package job timeout value * use released azdev * rollback pipelines * rollback pipelines 2 * refactor config test
1 parent 459da3d commit 1cf3072

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+208
-578
lines changed

.azure-pipelines/templates/azdev_setup.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ steps:
1414
chmod +x env/bin/activate
1515
. env/bin/activate
1616
17-
pip install -q azdev==0.1.24
17+
pip install -q azdev==0.1.25
1818
azdev --version
1919
2020
if [ -z "$CLI_EXT_REPO_PATH" ]; then

.snapcraft.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ parts:
2828
- libssl1.0.0
2929
requirements: requirements.txt
3030
install: |
31-
python_packages="src/azure-cli-core src/azure-cli-nspkg src/azure-cli-command_modules-nspkg src/command_modules/azure-cli*"
31+
python_packages="src/azure-cli-core src/command_modules/azure-cli*"
3232
export PYTHONUSERBASE=$SNAPCRAFT_PART_INSTALL
3333
export PYTHONHOME=$SNAPCRAFT_PART_INSTALL/usr
3434
echo $SNAPCRAFT_PART_INSTALL/usr/bin/python3

Dockerfile

-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ COPY . /azure-cli
5050

5151
# 1. Build packages and store in tmp dir
5252
# 2. Install the cli and the other command modules that weren't included
53-
# 3. Temporary fix - install azure-nspkg to remove import of pkg_resources in azure/__init__.py (to improve performance)
5453
RUN ./scripts/install_full.sh \
5554
&& cat /azure-cli/az.completion > ~/.bashrc \
5655
&& runDeps="$( \

Dockerfile.nanoserver

-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ foreach($m in $modules) \
7878
{ \
7979
& pip install --no-cache-dir $m; \
8080
}\
81-
& pip install --no-cache-dir --force-reinstall --upgrade azure-nspkg azure-mgmt-nspkg; \
8281
Pop-Location; \
8382
Write-Host 'Done';
8483

Dockerfile.spot

+2-4
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,13 @@ COPY . /azure-cli
3333
# jmespath-terminal - we include jpterm as a useful tool
3434
# 1. Build packages and store in tmp dir
3535
# 2. Install the cli and the other command modules that weren't included
36-
# 3. Temporary fix - install azure-nspkg to remove import of pkg_resources in azure/__init__.py (to improve performance)
3736
RUN /bin/bash -c 'TMP_PKG_DIR=$(mktemp -d); \
38-
for d in src/azure-cli src/azure-cli-core src/azure-cli-nspkg src/azure-cli-command_modules-nspkg src/command_modules/azure-cli-*/; \
37+
for d in src/azure-cli src/azure-cli-core src/command_modules/azure-cli-*/; \
3938
do cd $d; echo $d; python setup.py bdist_wheel -d $TMP_PKG_DIR; cd -; \
4039
done; \
4140
[ -d privates ] && cp privates/*.whl $TMP_PKG_DIR; \
4241
all_modules=`find $TMP_PKG_DIR -name "*.whl"`; \
43-
pip install --no-cache-dir $all_modules; \
44-
pip install --no-cache-dir --force-reinstall --upgrade azure-nspkg azure-mgmt-nspkg;' \
42+
pip install --no-cache-dir $all_modules;' \
4543
&& cat /azure-cli/az.completion > ~/.bashrc
4644

4745
WORKDIR /

azure-cli.pyproj

-16
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
<VisualStudioVersion Condition=" '$(VisualStudioVersion)' == '' ">10.0</VisualStudioVersion>
2424
</PropertyGroup>
2525
<ItemGroup>
26-
<Compile Include="azure-cli-command_modules-nspkg\azure\cli\command_modules\__init__.py" />
27-
<Compile Include="azure-cli-command_modules-nspkg\setup.py" />
2826
<Compile Include="azure-cli-core\azure\cli\core\adal_authentication.py" />
2927
<Compile Include="azure-cli-core\azure\cli\core\azlogging.py" />
3028
<Compile Include="azure-cli-core\azure\cli\core\cloud.py" />
@@ -78,8 +76,6 @@
7876
<Compile Include="azure-cli-core\azure\cli\__init__.py" />
7977
<Compile Include="azure-cli-core\azure\__init__.py" />
8078
<Compile Include="azure-cli-core\setup.py" />
81-
<Compile Include="azure-cli-nspkg\azure\cli\__init__.py" />
82-
<Compile Include="azure-cli-nspkg\setup.py" />
8379
<Compile Include="azure-cli-testsdk\azure\cli\testsdk\base.py" />
8480
<Compile Include="azure-cli-testsdk\azure\cli\testsdk\checkers.py" />
8581
<Compile Include="azure-cli-testsdk\azure\cli\testsdk\decorators.py" />
@@ -785,10 +781,6 @@
785781
<Compile Include="command_modules\azure-cli-vm\setup.py" />
786782
</ItemGroup>
787783
<ItemGroup>
788-
<Folder Include="azure-cli-command_modules-nspkg\" />
789-
<Folder Include="azure-cli-command_modules-nspkg\azure\" />
790-
<Folder Include="azure-cli-command_modules-nspkg\azure\cli\" />
791-
<Folder Include="azure-cli-command_modules-nspkg\azure\cli\command_modules\" />
792784
<Folder Include="azure-cli-core\" />
793785
<Folder Include="azure-cli-core\azure\" />
794786
<Folder Include="azure-cli-core\azure\cli\" />
@@ -797,9 +789,6 @@
797789
<Folder Include="azure-cli-core\azure\cli\core\extensions\" />
798790
<Folder Include="azure-cli-core\azure\cli\core\profiles\" />
799791
<Folder Include="azure-cli-core\azure\cli\core\tests\" />
800-
<Folder Include="azure-cli-nspkg\" />
801-
<Folder Include="azure-cli-nspkg\azure\" />
802-
<Folder Include="azure-cli-nspkg\azure\cli\" />
803792
<Folder Include="azure-cli-testsdk\" />
804793
<Folder Include="azure-cli-testsdk\azure\" />
805794
<Folder Include="azure-cli-testsdk\azure\cli\" />
@@ -1130,13 +1119,8 @@
11301119
<Folder Include="command_modules\azure-cli-kusto\" />
11311120
</ItemGroup>
11321121
<ItemGroup>
1133-
<Content Include="azure-cli-command_modules-nspkg\HISTORY.rst" />
1134-
<Content Include="azure-cli-command_modules-nspkg\MANIFEST.in" />
1135-
<Content Include="azure-cli-command_modules-nspkg\README.rst" />
1136-
<Content Include="azure-cli-command_modules-nspkg\setup.cfg" />
11371122
<Content Include="azure-cli-core\HISTORY.rst" />
11381123
<Content Include="azure-cli-core\setup.cfg" />
1139-
<Content Include="azure-cli-nspkg\HISTORY.rst" />
11401124
<Content Include="azure-cli-testsdk\HISTORY.rst" />
11411125
<Content Include="azure-cli-testsdk\setup.cfg" />
11421126
<Content Include="azure-cli\az.completion.sh" />

azure-cli2017.pyproj

-17
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
<VisualStudioVersion Condition=" '$(VisualStudioVersion)' == '' ">10.0</VisualStudioVersion>
2424
</PropertyGroup>
2525
<ItemGroup>
26-
<Compile Include="azure-cli-command_modules-nspkg\azure\cli\command_modules\__init__.py" />
27-
<Compile Include="azure-cli-command_modules-nspkg\setup.py" />
2826
<Compile Include="azure-cli-core\azure\cli\core\adal_authentication.py" />
2927
<Compile Include="azure-cli-core\azure\cli\core\api.py" />
3028
<Compile Include="azure-cli-core\azure\cli\core\azlogging.py" />
@@ -90,8 +88,6 @@
9088
<Compile Include="azure-cli-core\azure\cli\core\telemetry.py" />
9189
<Compile Include="azure-cli-core\azure\cli\core\__init__.py" />
9290
<Compile Include="azure-cli-core\setup.py" />
93-
<Compile Include="azure-cli-nspkg\azure\cli\__init__.py" />
94-
<Compile Include="azure-cli-nspkg\setup.py" />
9591
<Compile Include="azure-cli-telemetry\azure\cli\telemetry\components\records_collection.py" />
9692
<Compile Include="azure-cli-telemetry\azure\cli\telemetry\components\records_collection.py" />
9793
<Compile Include="azure-cli-telemetry\azure\cli\telemetry\components\telemetry_client.py" />
@@ -980,10 +976,6 @@
980976
<Compile Include="azure-cli\setup.py" />
981977
</ItemGroup>
982978
<ItemGroup>
983-
<Folder Include="azure-cli-command_modules-nspkg\" />
984-
<Folder Include="azure-cli-command_modules-nspkg\azure\" />
985-
<Folder Include="azure-cli-command_modules-nspkg\azure\cli\" />
986-
<Folder Include="azure-cli-command_modules-nspkg\azure\cli\command_modules\" />
987979
<Folder Include="azure-cli-core\" />
988980
<Folder Include="azure-cli-core\azure\" />
989981
<Folder Include="azure-cli-core\azure\cli\" />
@@ -997,9 +989,6 @@
997989
<Folder Include="azure-cli-core\azure\cli\core\profiles\" />
998990
<Folder Include="azure-cli-core\azure\cli\core\tests\" />
999991
<Folder Include="azure-cli-core\azure\cli\core\tests\data\" />
1000-
<Folder Include="azure-cli-nspkg\" />
1001-
<Folder Include="azure-cli-nspkg\azure\" />
1002-
<Folder Include="azure-cli-nspkg\azure\cli\" />
1003992
<Folder Include="azure-cli-telemetry\" />
1004993
<Folder Include="azure-cli-telemetry\azure\" />
1005994
<Folder Include="azure-cli-telemetry\azure\" />
@@ -1217,10 +1206,6 @@
12171206
<Folder Include="azure-cli\azure\cli\command_modules\vm\tests\latest\keyvault\" />
12181207
</ItemGroup>
12191208
<ItemGroup>
1220-
<Content Include="azure-cli-command_modules-nspkg\HISTORY.rst" />
1221-
<Content Include="azure-cli-command_modules-nspkg\MANIFEST.in" />
1222-
<Content Include="azure-cli-command_modules-nspkg\README.rst" />
1223-
<Content Include="azure-cli-command_modules-nspkg\setup.cfg" />
12241209
<Content Include="azure-cli-core\azure\cli\core\auth_landing_pages\fail.html" />
12251210
<Content Include="azure-cli-core\azure\cli\core\auth_landing_pages\fail.html" />
12261211
<Content Include="azure-cli-core\azure\cli\core\auth_landing_pages\ok.html" />
@@ -1234,8 +1219,6 @@
12341219
<Content Include="azure-cli-core\azure\cli\core\tests\sp_cert.pem" />
12351220
<Content Include="azure-cli-core\HISTORY.rst" />
12361221
<Content Include="azure-cli-core\setup.cfg" />
1237-
<Content Include="azure-cli-nspkg\HISTORY.rst" />
1238-
<Content Include="azure-cli-nspkg\setup.cfg" />
12391222
<Content Include="azure-cli-telemetry\azure\cli\telemetry\tests\resources\cache" />
12401223
<Content Include="azure-cli-telemetry\azure\cli\telemetry\tests\resources\cache.1" />
12411224
<Content Include="azure-cli-telemetry\azure\cli\telemetry\tests\resources\cache.10" />

azure-pipelines.yml

+27
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,33 @@ jobs:
572572
573573
displayName: 'Bash Script'
574574
575+
- job: TestHomebrewPackage
576+
displayName: Test Homebrew Package
577+
timeoutInMinutes: 120
578+
dependsOn: BuildHomebrewFormula
579+
condition: and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'Manual'))
580+
pool:
581+
vmImage: 'macOS-10.14'
582+
steps:
583+
- task: DownloadPipelineArtifact@1
584+
displayName: 'Download Metadata'
585+
inputs:
586+
TargetPath: '$(Build.ArtifactStagingDirectory)/metadata'
587+
artifactName: metadata
588+
589+
590+
- task: DownloadPipelineArtifact@1
591+
displayName: 'Download Build Artifacts'
592+
inputs:
593+
TargetPath: '$(Build.ArtifactStagingDirectory)/homebrew'
594+
artifactName: homebrew
595+
596+
597+
- bash: ./scripts/release/homebrew/test_homebrew_package.sh
598+
599+
600+
displayName: 'Test Homebrew Package'
601+
575602
- job: BuildYumPackage
576603
displayName: Build Yum Package
577604

build_scripts/windows/scripts/build.cmd

+1-3
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ robocopy %PYTHON_DIR% %BUILDING_DIR% /s /NFL /NDL
8888

8989
set CLI_SRC=%REPO_ROOT%\src
9090
%BUILDING_DIR%\python.exe -m pip install --no-warn-script-location --force-reinstall pycparser==2.18
91-
for %%a in (%CLI_SRC%\azure-cli %CLI_SRC%\azure-cli-core %CLI_SRC%\azure-cli-nspkg %CLI_SRC%\azure-cli-telemetry) do (
91+
for %%a in (%CLI_SRC%\azure-cli %CLI_SRC%\azure-cli-core %CLI_SRC%\azure-cli-telemetry) do (
9292
pushd %%a
9393
%BUILDING_DIR%\python.exe -m pip install --no-warn-script-location --no-cache-dir --no-deps .
9494
popd
@@ -97,8 +97,6 @@ for %%a in (%CLI_SRC%\azure-cli %CLI_SRC%\azure-cli-core %CLI_SRC%\azure-cli-nsp
9797

9898
if %errorlevel% neq 0 goto ERROR
9999

100-
%BUILDING_DIR%\python.exe -m pip install --no-warn-script-location --force-reinstall --upgrade azure-nspkg azure-mgmt-nspkg
101-
102100
pushd %BUILDING_DIR%
103101
%BUILDING_DIR%\python.exe %~dp0\patch_models_v2.py
104102
popd

doc/authoring_command_modules/README.md

-4
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,6 @@ Also, you can run `az` and if your command module contributes any commands, they
5555
If your commands aren't showing with `az`, use `az --debug` to help debug. There could have been an exception
5656
thrown whilst attempting to load your module.
5757

58-
**Note for locally installed Azure SDKs:**
59-
If you're receiving Azure import errors, run `pip install -I azure-nspkg==1.0.0` in your virtual environment
60-
after installing your SDK locally.
61-
6258

6359
<a name="heading_author_command_mod"></a>Authoring command modules
6460
------

scripts/ci/version.sh

+8
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@ echo "Replace with version: $version"
2020

2121
platform=`uname`
2222

23+
for each in $(find src -name __main__.py); do
24+
if [ "$platform" == "Darwin" ]; then
25+
sed -i "" "s/^__version__ = [\"']\(.*\)[\"']/__version__ = \"\1.dev$version\"/" $each
26+
else
27+
sed -i "s/^__version__ = [\"']\(.*\)[\"']/__version__ = \"\1.dev$version\"/" $each
28+
fi
29+
done
30+
2331
for each in $(find src -name __init__.py); do
2432
if [ "$platform" == "Darwin" ]; then
2533
sed -i "" "s/^__version__ = [\"']\(.*\)[\"']/__version__ = \"\1.dev$version\"/" $each

scripts/curl_install_pypi/install.py

-4
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,6 @@ def install_cli(install_dir, tmp_dir):
149149
path_to_pip = os.path.join(install_dir, 'bin', 'pip')
150150
cmd = [path_to_pip, 'install', '--cache-dir', tmp_dir, 'azure-cli', '--upgrade']
151151
exec_command(cmd)
152-
# Temporary fix to make sure that we have empty __init__.py files for the azure site-packages folder.
153-
# (including the pkg_resources/declare namespace significantly impacts startup perf for the CLI)
154-
fixupcmd = [path_to_pip, 'install', '--cache-dir', tmp_dir, '--upgrade', '--force-reinstall', 'azure-nspkg', 'azure-mgmt-nspkg']
155-
exec_command(fixupcmd)
156152

157153

158154
def create_executable(exec_dir, install_dir):

scripts/dev_setup.py

-6
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ def pip_command(command):
6666
pip_command('install -e ./tools')
6767

6868
# command modules have dependency on azure-cli-core so install this first
69-
pip_command('install -e src/azure-cli-nspkg')
7069
pip_command('install -e src/azure-cli-telemetry')
7170
pip_command('install -e src/azure-cli-core')
7271
py_command('-m automation.setup.install_modules')
@@ -75,11 +74,6 @@ def pip_command(command):
7574
pip_command('install -e src/azure-cli')
7675
pip_command('install -e src/azure-cli-testsdk')
7776

78-
# Ensure that the site package's azure/__init__.py has the old style namespace
79-
# package declaration by installing the old namespace package
80-
pip_command('install --force-reinstall azure-nspkg==1.0.0')
81-
pip_command('install --force-reinstall azure-mgmt-nspkg==1.0.0')
82-
8377
print_support_message()
8478
print('Finished dev setup.')
8579

scripts/release/debian/Dockerfile

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ RUN mkdir -p ./bin/pypi && \
2929
BUILD_STAGINGDIRECTORY=/azure-cli/bin/pypi ./scripts/release/pypi/build.sh && \
3030
if [ -d ./privates ]; then find ./privates -name '*.whl' | xargs pip install; fi && \
3131
find ./bin/pypi -name '*.whl' | xargs pip install && \
32-
pip install --force-reinstall --upgrade azure-nspkg azure-mgmt-nspkg && \
3332
pip install --force-reinstall urllib3==1.24.2
3433

3534
ARG cli_version=0.0.0-dev

scripts/release/debian/pipeline.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ set -exv
88
: ${DISTRO:?"DISTRO is not set"}
99
: ${DISTRO_BASE_IMAGE:?"DISTRO_BASE_IMAGE is not set"}
1010

11-
CLI_VERSION=`cat src/azure-cli/azure/cli/__init__.py | grep __version__ | sed s/' '//g | sed s/'__version__='// | sed s/\"//g`
11+
CLI_VERSION=`cat src/azure-cli/azure/cli/__main__.py | grep __version__ | sed s/' '//g | sed s/'__version__='// | sed s/\"//g`
1212

1313
docker run --rm \
1414
-v "$BUILD_SOURCESDIRECTORY":/mnt/repo \

scripts/release/docker/pipeline.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
IMAGE_NAME=clibuild$BUILD_BUILDNUMBER
2-
CLI_VERSION=`cat src/azure-cli/azure/cli/__init__.py | grep __version__ | sed s/' '//g | sed s/'__version__='// | sed s/\"//g`
2+
CLI_VERSION=`cat src/azure-cli/azure/cli/__main__.py | grep __version__ | sed s/' '//g | sed s/'__version__='// | sed s/\"//g`
33

44
docker build --no-cache \
55
--build-arg BUILD_DATE="`date -u +"%Y-%m-%dT%H:%M:%SZ"`" \

scripts/release/get_version.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
# Extract the version of the CLI from azure-cli package's __init__.py file.
1+
# Extract the version of the CLI from azure-cli package's __main__.py file.
22

33
: "${BUILD_STAGINGDIRECTORY:?BUILD_STAGINGDIRECTORY environment variable not set}"
44

5-
ver=`cat src/azure-cli/azure/cli/__init__.py | grep __version__ | sed s/' '//g | sed s/'__version__='// | sed s/\"//g`
5+
ver=`cat src/azure-cli/azure/cli/__main__.py | grep __version__ | sed s/' '//g | sed s/'__version__='// | sed s/\"//g`
66
echo $ver > $BUILD_STAGINGDIRECTORY/version
77
echo $ver > $BUILD_STAGINGDIRECTORY/azure-cli-${ver}.txt

scripts/release/homebrew/docker/formula_template.txt

+7-2
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,20 @@ class AzureCli < Formula
66
url "{{ upstream_url }}"
77
version "{{ cli_version }}"
88
sha256 "{{ upstream_sha }}"
9+
license "MIT"
910
head "https://github.com/Azure/azure-cli.git"
1011

1112
{{ bottle_hash }}
1213

1314
depends_on "[email protected]"
1415
depends_on "[email protected]"
1516

17+
uses_from_macos "libffi"
18+
19+
on_linux do
20+
depends_on "pkg-config" => :build
21+
end
22+
1623
{{ resources }}
1724

1825
def install
@@ -28,8 +35,6 @@ class AzureCli < Formula
2835
buildpath/"src/azure-cli",
2936
buildpath/"src/azure-cli-telemetry",
3037
buildpath/"src/azure-cli-core",
31-
buildpath/"src/azure-cli-nspkg",
32-
buildpath/"src/azure-cli-command_modules-nspkg",
3338
]
3439

3540
# Install CLI

scripts/release/homebrew/docker/run.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ pip install -r /mnt/src/azure-cli/requirements.py3.Darwin.txt
1010

1111
pip list
1212

13-
python $root/formula_generate.py
13+
python $root/formula_generate.py -b use_template
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# --------------------------------------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License. See License.txt in the project root for license information.
4+
# --------------------------------------------------------------------------------------------
5+
6+
import os
7+
import sys
8+
import subprocess
9+
10+
if len(sys.argv) < 2:
11+
print('AZ_BASE or PYTHON_VERSION are not specified')
12+
sys.exit(-1)
13+
14+
az_base = sys.argv[1]
15+
python_version = sys.argv[2]
16+
17+
root_dir = '{}/lib/{}/site-packages/azure/cli/command_modules'.format(az_base, python_version)
18+
mod_list = [mod for mod in sorted(os.listdir(root_dir)) if os.path.isdir(os.path.join(root_dir, mod)) and mod != '__pycache__']
19+
20+
pytest_base_cmd = 'PYTHONPATH={}/lib/{}/site-packages python -m pytest -x -v --boxed -p no:warnings --log-level=WARN'.format(az_base, python_version)
21+
pytest_parallel_cmd = '{} -n auto'.format(pytest_base_cmd)
22+
23+
for mod_name in mod_list:
24+
if mod_name in ['botservice', 'network', 'configure']:
25+
exit_code = subprocess.call(['{} --junit-xml ./azure_cli_test_result/{}.xml --pyargs azure.cli.command_modules.{}'.format(pytest_base_cmd, mod_name, mod_name)], shell=True)
26+
else:
27+
exit_code = subprocess.call(['{} --junit-xml ./azure_cli_test_result/{}.xml --pyargs azure.cli.command_modules.{}'.format(pytest_parallel_cmd, mod_name, mod_name)], shell=True)
28+
if exit_code == 5:
29+
print('No tests found for {}'.format(mod_name))
30+
elif exit_code != 0:
31+
sys.exit(exit_code)
32+
33+
exit_code = subprocess.call(['{} --junit-xml ./azure_cli_test_result/azure-cli-core.xml --pyargs azure.cli.core'.format(pytest_base_cmd)], shell=True)
34+
sys.exit(exit_code)

0 commit comments

Comments
 (0)