Skip to content

Commit ab10dfd

Browse files
Various fixes to support extension packages as dev_reqs (#35504)
1 parent 3512ce4 commit ab10dfd

File tree

10 files changed

+40
-14
lines changed

10 files changed

+40
-14
lines changed

eng/pipelines/templates/jobs/ci.tests.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ jobs:
7878
- name: InjectedPackages
7979
value: ${{ parameters.InjectedPackages }}
8080

81-
8281
steps:
8382
- template: /eng/pipelines/templates/steps/targeting-string-resolve.yml
8483
parameters:

eng/pipelines/templates/jobs/ci.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,12 @@ jobs:
245245
Directory: sdk/${{ parameters.ServiceDirectory }}
246246
CheckLinkGuidance: $true
247247

248+
- task: DownloadPipelineArtifact@2
249+
condition: succeededOrFailed()
250+
inputs:
251+
artifactName: 'packages_extended'
252+
targetPath: $(Build.ArtifactStagingDirectory)
253+
248254
- template: ../steps/analyze.yml
249255
parameters:
250256
ServiceDirectory: ${{ parameters.ServiceDirectory }}

eng/pipelines/templates/steps/analyze.yml

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,28 +81,31 @@ steps:
8181
condition: and(succeededOrFailed(), ne(variables['Skip.VerifySdist'],'true'))
8282
inputs:
8383
scriptPath: 'scripts/devops_tasks/dispatch_tox.py'
84-
arguments: '"$(TargetingString)" --service=${{parameters.ServiceDirectory}} --toxenv=verifysdist'
84+
arguments: '"$(TargetingString)" --service=${{parameters.ServiceDirectory}} --toxenv=verifysdist ${{ parameters.AdditionalTestArgs }}'
8585

8686
- task: PythonScript@0
8787
displayName: 'Verify whl'
8888
condition: and(succeededOrFailed(), ne(variables['Skip.VerifyWhl'],'true'))
8989
inputs:
9090
scriptPath: 'scripts/devops_tasks/dispatch_tox.py'
91-
arguments: '"$(TargetingString)" --service=${{parameters.ServiceDirectory}} --toxenv=verifywhl'
91+
arguments: '"$(TargetingString)" --service=${{parameters.ServiceDirectory}} --toxenv=verifywhl ${{ parameters.AdditionalTestArgs }}'
9292

9393
- template: run_mypy.yml
9494
parameters:
9595
ServiceDirectory: ${{ parameters.ServiceDirectory }}
9696
TestMarkArgument: ${{ parameters.TestMarkArgument }}
97+
AdditionalTestArgs: ${{ parameters.AdditionalTestArgs }}
9798

9899
- template: run_pyright.yml
99100
parameters:
100101
ServiceDirectory: ${{ parameters.ServiceDirectory }}
101102
TestMarkArgument: ${{ parameters.TestMarkArgument }}
103+
AdditionalTestArgs: ${{ parameters.AdditionalTestArgs }}
102104

103105
- template: run_pylint.yml
104106
parameters:
105107
ServiceDirectory: ${{ parameters.ServiceDirectory }}
108+
AdditionalTestArgs: ${{ parameters.AdditionalTestArgs }}
106109

107110
- ${{ if parameters.ValidateFormatting }}:
108111
- template: run_black.yml
@@ -114,31 +117,25 @@ steps:
114117
displayName: 'Run Keyword Validation Check'
115118
inputs:
116119
scriptPath: 'scripts/devops_tasks/dispatch_tox.py'
117-
arguments: '"$(TargetingString)" --service=${{parameters.ServiceDirectory}} --toxenv=verify_keywords'
120+
arguments: '"$(TargetingString)" --service=${{parameters.ServiceDirectory}} --toxenv=verify_keywords ${{ parameters.AdditionalTestArgs }}'
118121
condition: and(succeededOrFailed(), ne(variables['Skip.KeywordCheck'],'true'))
119122

120-
- task: DownloadPipelineArtifact@2
121-
condition: succeededOrFailed()
122-
inputs:
123-
artifactName: 'packages_extended'
124-
targetPath: $(Build.ArtifactStagingDirectory)
125-
126123
- template: ../steps/run_bandit.yml
127124
parameters:
128125
ServiceDirectory: ${{ parameters.ServiceDirectory }}
129126
TestMarkArgument: ${{ parameters.TestMarkArgument }}
130-
AdditionalTestArgs: ${{parameters.AdditionalTestArgs}}
127+
AdditionalTestArgs: ${{ parameters.AdditionalTestArgs }}
131128

132129
- template: /eng/pipelines/templates/steps/update_snippet.yml
133130
parameters:
134131
ScanPath: $(Build.SourcesDirectory)/sdk/${{ parameters.ServiceDirectory }}
135-
AdditionalTestArgs: ${{parameters.AdditionalTestArgs}}
132+
AdditionalTestArgs: ${{ parameters.AdditionalTestArgs }}
136133

137134
- template: ../steps/run_breaking_changes.yml
138135
parameters:
139136
ServiceDirectory: ${{ parameters.ServiceDirectory }}
140137
TestMarkArgument: ${{ parameters.TestMarkArgument }}
141-
AdditionalTestArgs: ${{parameters.AdditionalTestArgs}}
138+
AdditionalTestArgs: ${{ parameters.AdditionalTestArgs }}
142139

143140
- template: /eng/common/pipelines/templates/steps/create-apireview.yml
144141
parameters:

eng/pipelines/templates/steps/build-extended-artifacts.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ steps:
7070
"$(TargetingString)"
7171
--service="${{ parameters.ServiceDirectory }}"
7272
--toxenv=sphinx
73+
--wheel_dir="$(Build.ArtifactStagingDirectory)"
7374
7475
- pwsh: |
7576
Write-Host "##vso[task.setvariable variable=PIP_INDEX_URL]https://pypi.python.org/simple"
@@ -78,6 +79,7 @@ steps:
7879
- template: /eng/pipelines/templates/steps/run_apistub.yml
7980
parameters:
8081
ServiceDirectory: ${{ parameters.ServiceDirectory }}
82+
AdditionalTestArgs: '--wheel_dir="$(Build.ArtifactStagingDirectory)"'
8183

8284
- ${{ parameters.BeforePublishSteps }}
8385

eng/pipelines/templates/steps/run_apistub.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
parameters:
22
ServiceDirectory: ''
3+
AdditionalTestArgs: ''
4+
35

46
# The variable TargetingString is set by template `eng/pipelines/templates/steps/targeting-string-resolve.yml`. This template is invoked from yml files:
57
# eng/pipelines/templates/jobs/ci.tests.yml
@@ -31,4 +33,5 @@ steps:
3133
--service="${{ parameters.ServiceDirectory }}"
3234
--toxenv="apistub"
3335
--disablecov
34-
--filter-type="Omit_management"
36+
--filter-type="Omit_management"
37+
${{ parameters.AdditionalTestArgs }}

eng/pipelines/templates/steps/run_black.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ parameters:
22
ServiceDirectory: ''
33
ValidateFormatting: false
44
EnvVars: {}
5+
AdditionalTestArgs: ''
56

67
steps:
78
- task: UsePythonVersion@0

eng/pipelines/templates/steps/run_mypy.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ parameters:
33
ServiceDirectory: ''
44
TestMarkArgument: ''
55
EnvVars: {}
6+
AdditionalTestArgs: ''
67

78
# The variable TargetingString is set by template `eng/pipelines/templates/steps/targeting-string-resolve.yml`. This template is invoked from yml files:
89
# eng/pipelines/templates/jobs/ci.tests.yml
@@ -32,5 +33,6 @@ steps:
3233
--service="${{ parameters.ServiceDirectory }}"
3334
--toxenv="mypy"
3435
--disablecov
36+
${{ parameters.AdditionalTestArgs }}
3537
env: ${{ parameters.EnvVars }}
3638
condition: and(succeededOrFailed(), ne(variables['Skip.MyPy'],'true'))

eng/pipelines/templates/steps/run_pylint.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ parameters:
22
ServiceDirectory: ''
33
TestMarkArgument: ''
44
EnvVars: {}
5+
AdditionalTestArgs: ''
56

67
# The variable TargetingString is set by template `eng/pipelines/templates/steps/targeting-string-resolve.yml`. This template is invoked from yml files:
78
# eng/pipelines/templates/jobs/ci.tests.yml
@@ -32,5 +33,6 @@ steps:
3233
--toxenv="pylint"
3334
--disablecov
3435
--filter-type="Omit_management"
36+
${{ parameters.AdditionalTestArgs }}
3537
env: ${{ parameters.EnvVars }}
3638
condition: and(succeededOrFailed(), ne(variables['Skip.Pylint'],'true'))

eng/pipelines/templates/steps/run_pyright.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ parameters:
22
BuildTargetingString: 'azure-*'
33
ServiceDirectory: ''
44
TestMarkArgument: ''
5+
AdditionalTestArgs: ''
56

67
# The variable TargetingString is set by template `eng/pipelines/templates/steps/targeting-string-resolve.yml`. This template is invoked from yml files:
78
# eng/pipelines/templates/jobs/ci.tests.yml
@@ -31,6 +32,7 @@ steps:
3132
--service="${{ parameters.ServiceDirectory }}"
3233
--toxenv="pyright"
3334
--disablecov
35+
${{ parameters.AdditionalTestArgs }}
3436
condition: and(succeededOrFailed(), ne(variables['Skip.Pyright'],'true'))
3537

3638
- task: PythonScript@0
@@ -43,4 +45,5 @@ steps:
4345
--service="${{ parameters.ServiceDirectory }}"
4446
--toxenv="verifytypes"
4547
--disablecov
48+
${{ parameters.AdditionalTestArgs }}
4649
condition: and(succeededOrFailed(), ne(variables['Skip.Verifytypes'],'true'))

tools/azure-sdk-tools/ci_tools/scenario/generation.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,16 @@ def create_package_and_install(
7474

7575
target_package = ParsedSetup.from_path(setup_py_path)
7676

77+
# ensure that discovered packages are always copied to the distribution directory regardless of other factors
78+
for built_package in discovered_packages:
79+
if os.getenv("PREBUILT_WHEEL_DIR") is not None:
80+
package_path = os.path.join(os.environ["PREBUILT_WHEEL_DIR"], built_package)
81+
if os.path.isfile(package_path):
82+
built_pkg_path = package_path
83+
84+
# copy this file to the distribution directory just in case we need it later
85+
shutil.copy(built_pkg_path, distribution_directory)
86+
7787
if skip_install:
7888
logging.info("Flag to skip install whl is passed. Skipping package installation")
7989
else:
@@ -83,6 +93,7 @@ def create_package_and_install(
8393
package_path = os.path.join(os.environ["PREBUILT_WHEEL_DIR"], built_package)
8494
if os.path.isfile(package_path):
8595
built_pkg_path = package_path
96+
8697
logging.info("Installing {w} from directory".format(w=built_package))
8798
# it does't exist, so we need to error out
8899
else:

0 commit comments

Comments
 (0)