Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Testing of Conda Artifacts #18478

Merged
merged 130 commits into from
May 18, 2021
Merged
Show file tree
Hide file tree
Changes from 82 commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
4b16b17
extending documentation, initial tox_conda integration
scbedd Apr 26, 2021
f646f31
update to ensure that various build packages do not stomp on each other
scbedd Apr 27, 2021
8c541aa
Merge remote-tracking branch 'upstream/master' into feature/add-conda…
scbedd Apr 27, 2021
4c16140
add build and test
scbedd Apr 27, 2021
ab4bdc9
removing beforeteststeps
scbedd Apr 27, 2021
2955932
remove updates to archetype-conda-release
scbedd Apr 27, 2021
e64a44e
remove double argument
scbedd Apr 27, 2021
bbe623a
remove extraneous stuff
scbedd Apr 28, 2021
7be9322
disable doc gen and real test frameworks to speed up the core loop
scbedd Apr 28, 2021
f00e054
undo changes to core/ci.yml so as to not trigger the world
scbedd Apr 28, 2021
0c658f1
can't use conda index without conda build
scbedd Apr 28, 2021
00a229f
clean up
scbedd Apr 28, 2021
088df50
change locations
scbedd Apr 28, 2021
b6e75cd
remove erroneous targeting
scbedd Apr 28, 2021
9effa73
properly activate the environment so we have write access to it
scbedd Apr 28, 2021
028b757
build
scbedd Apr 28, 2021
c254901
get bad conda naming out of install
scbedd Apr 28, 2021
f33f1f6
install the actual artifact
scbedd Apr 28, 2021
0acc7d0
move meta.yml into its own folder. change working directory for creat…
scbedd Apr 28, 2021
8b18376
Merge branch 'feature/add-conda-testing' of https://github.com/scbedd…
scbedd Apr 28, 2021
1a83adc
it's hanging waiting for user intervention. need to apply argument --…
scbedd Apr 28, 2021
b21ab26
get the working directory correct. almost ready to pytest!
scbedd Apr 28, 2021
798cefb
need to run tests _as they were_
scbedd Apr 28, 2021
d07e7a6
find paths
scbedd Apr 28, 2021
976c1ad
correct the path being pass
scbedd Apr 28, 2021
b2cbe75
install tools from correct directory
scbedd Apr 28, 2021
4aabe9e
update storage to store meta.yml in its own folder
scbedd Apr 28, 2021
ba0e9dc
first attempt at crossplat solution
scbedd Apr 28, 2021
99cba74
Revert "first attempt at crossplat solution"
scbedd Apr 28, 2021
6fa0220
handle cross-plat
scbedd Apr 28, 2021
ec36125
we need to add a different scripts directory on windows vs ubuntu/mac
scbedd Apr 28, 2021
f5f73b1
update pip install for windows such that it will run user specific if…
scbedd Apr 28, 2021
37487c2
remove unnecessary script. some cleanup. time to get these python env…
scbedd Apr 28, 2021
96315ad
ensure that we create conda with the correct python version
scbedd Apr 28, 2021
dc6af3a
apparently moving to pwsh from powershell changes things. somehow
scbedd Apr 28, 2021
20810fc
outputting which version is running
scbedd Apr 28, 2021
71ea1b6
debugging for windows
scbedd Apr 28, 2021
d4103f2
add dumping of environment information
scbedd Apr 28, 2021
f21baf8
removing extra activate
scbedd Apr 29, 2021
33e1487
dump additional variables. does windows need to only be activated once?
scbedd Apr 29, 2021
fc663d3
bad formatting pwsh
scbedd Apr 29, 2021
12f626a
if we change the order does this thing work?
scbedd Apr 29, 2021
1345a77
fixing error
scbedd Apr 29, 2021
52f4d26
OsVmImage is a variable
scbedd Apr 29, 2021
ce17d1b
adjusting conditional back to parameter. adding to dump script
scbedd Apr 29, 2021
6044540
ensure we are running the python from the environment
scbedd Apr 29, 2021
76b0062
switch from contains to eq
scbedd Apr 29, 2021
0df4a73
daniel gave assist with wonky parameter expansion
scbedd Apr 29, 2021
bfc2fb6
easier attempt at prepend
scbedd Apr 29, 2021
79363e5
correct pshell call
scbedd Apr 29, 2021
b4a27af
prepend path with bin and scripts. scripts last.
scbedd Apr 29, 2021
f9e9b1f
try create instead of env create
scbedd Apr 29, 2021
98c4c00
change ordering
scbedd Apr 30, 2021
8673dc4
I think I got it!
scbedd Apr 30, 2021
71e6b86
clean up.
scbedd Apr 30, 2021
7fa1e11
update the platform matrixs to go after pypy3
scbedd Apr 30, 2021
a0bc94d
output the command we're actually running
scbedd Apr 30, 2021
9ee7daf
restore pypy3.6 to pypy3. hosted tool cache is named that way
scbedd Apr 30, 2021
07e7677
override the python version to use pypy3.7 if necessary
scbedd Apr 30, 2021
71ec768
go after conda forge. last remaining item is to get the order of ops …
scbedd Apr 30, 2021
f2c330a
need to figure out why the bin prepend isn't working
scbedd May 1, 2021
6f63ae5
this is getting hilariously more complex
scbedd May 1, 2021
9700a76
change how we call this thing
scbedd May 1, 2021
9ed0262
update the calls to directl use the path instead of the environment name
scbedd May 1, 2021
7bae2d1
attempting referencing the correct bin
scbedd May 2, 2021
ec233f2
the activate hack works
scbedd May 2, 2021
a596bf7
output the path. on linux, use conda/bin/activate, on windows, use ju…
scbedd May 2, 2021
b7f1db2
the path prepend isn't working is it
scbedd May 2, 2021
88a644f
clean up pass. time to get pypy3 working
scbedd May 2, 2021
adea764
more clean up
scbedd May 2, 2021
322113b
try creating the environment slightly differently by changing how we …
scbedd May 2, 2021
ee04097
update the target from pypy3 to pypy3.7
scbedd May 2, 2021
67defee
index _first_ using conda build in the base environment. then install…
scbedd May 2, 2021
e1326cc
prep for having to call executable pypy3. create a build env that is …
scbedd May 2, 2021
1d3a254
swap over to invoking the correct python
scbedd May 2, 2021
e633f10
ensure we also install pip on pypy3
scbedd May 2, 2021
877e1db
checking to see if pypy3 properly aliases python
scbedd May 2, 2021
7821f37
remove extraneous comments now that we know that python is aliased pr…
scbedd May 2, 2021
3013d50
restore buildDocs default. originally changed to speed up iterations
scbedd May 2, 2021
1a7f0c6
install an established set of dev requirements
scbedd May 4, 2021
e4a2672
install mock, trio
scbedd May 4, 2021
1c1e481
adding installation of azure-identity by default.
scbedd May 4, 2021
1231342
add explicit utures requirement as it's being incidentally installed…
scbedd May 4, 2021
f4d6554
ensure that we also pass in the channel such that the artifact depend…
scbedd May 4, 2021
a28b1a8
name the azure conda channel appropriately
scbedd May 5, 2021
25f690d
resolve the issue with python_version requres for futures
scbedd May 5, 2021
8f8f735
add cryptography dependency set
scbedd May 5, 2021
5f5bcaa
ensure the echo matches
scbedd May 5, 2021
8e17e52
add debugging step to dump environment variables, pip environment, an…
scbedd May 5, 2021
997f94c
disable regular testing
scbedd May 5, 2021
00af21c
bring in sdk/conftest.py
scbedd May 5, 2021
25e8859
additional debugging. swapping the clone to grab everything in the repo
scbedd May 6, 2021
97fac59
dumping what we cloned down before we attempt to access it
scbedd May 6, 2021
c7955cf
instead grab everything in sdk
scbedd May 6, 2021
1c9a590
disable doc building, add tools back into what gets cloned down
scbedd May 6, 2021
c1fffcf
eliminate extra debugging output. narrow the scope down to sdk/servic…
scbedd May 6, 2021
b791c91
add adal to conda test environment
scbedd May 6, 2021
a75f9c6
updating docs to reflect support
scbedd May 6, 2021
3440d5a
abstract at job level
scbedd May 6, 2021
64e3a1c
fix indendtation of additional job
scbedd May 6, 2021
e8be183
make entire step optional
scbedd May 6, 2021
370fc65
use default
scbedd May 6, 2021
915a1f0
job steps are still skipping
scbedd May 6, 2021
972c5eb
remove one of the conditions so we can see what is evaluating
scbedd May 6, 2021
3ba32fc
there are conda tests to be run
scbedd May 6, 2021
0528051
Merge branch 'master' into feature/add-conda-testing
scbedd May 8, 2021
c1cd932
splitting this entire thing into a conditional
scbedd May 8, 2021
ac08e2d
instead of hacking some expression evaluation at run time, split up t…
scbedd May 8, 2021
4d854f6
update the alignment
scbedd May 8, 2021
a62bdb1
remove references or add missing argument
scbedd May 8, 2021
5500af1
assent to forced cloudconfig
scbedd May 8, 2021
5ff0b5c
ability to run multiple matrices in place
scbedd May 8, 2021
e9aa584
close gt()
scbedd May 8, 2021
c10e262
undo all the testing changes.
scbedd May 8, 2021
36fd90f
merge master so as to undo changes to the eng/common
scbedd May 14, 2021
35ad3c9
swap to newer version of azure core
scbedd May 14, 2021
0e2a8f6
even newer version of azure-core
scbedd May 14, 2021
ca88f4f
revert back ot 1.12.0
scbedd May 15, 2021
bd9d6fb
re-order installation. add pip freeze
scbedd May 17, 2021
3cee356
ensure that the correct version of azure_core is installed
scbedd May 17, 2021
6a9b5df
force-reinstall isn't doing anything
scbedd May 17, 2021
107f7f0
activate env and install dependencies first, then install azure-ident…
scbedd May 17, 2021
a599c0a
split environment prep and package installation into separate steps
scbedd May 18, 2021
0179567
change ordering
scbedd May 18, 2021
30ba4a6
re-ordering is working. now we just gotta prevent reinstall of azure-…
scbedd May 18, 2021
237e172
last cleanup, finally going to merge this!
scbedd May 18, 2021
72d6510
remove the --force-reinstall that I believe is making this thing not …
scbedd May 18, 2021
1b39599
we do not need to reinstall all the dependencies each time. we just n…
scbedd May 18, 2021
114a69e
bad reference to checkout
scbedd May 18, 2021
12511fe
update the conda_test_requirements to be installable from root of repo
scbedd May 18, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions doc/dev/conda-builds.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,18 @@ A Conda Artifact defines:
- Any other necessary details.

## How to Build an Azure SDK Conda Package Locally
#### If using powershell, you will need to prep your environment before proceeding to the next step

```
powershell -ExecutionPolicy ByPass -NoExit -Command "& '<path-to-conda-folder>\shell\condabin\conda-hook.ps1' ; conda activate '<path-to-conda-folder>' "
```

Afterwards, invoke `conda init powershell` and re-create the pshell session.

By default, your powershell environment will now load `conda`. If you want pure pip, you will need to use explicit invocations of your `python` locations to create virtual envs.
### Set up your conda environment


You will notice that all the azure-sdk conda distributions have the **same** version number and requirement set. This is due to the fact that the azure-sdk team pushes our conda packages out in waves. To support this, all versions are set via a common environment variable `AZURESDK_CONDA_VERSION`.

We keep this environment variable set properly across all our builds by using a common `conda_env.yml` when creating our build environment. This environment definition ensures that:
Expand Down
2 changes: 1 addition & 1 deletion eng/conda_env.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
variables:
AZURESDK_CONDA_VERSION: '2021.05.01'
AZURESDK_CONDA_VERSION: '2021.05.01b1'
8 changes: 8 additions & 0 deletions eng/conda_test_requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
aiohttp>=3.0; python_version >= '3.5'
../../../tools/azure-devtools
../../../tools/azure-sdk-tools
mock;
aiodns>=2.0; python_version >= '3.5'
parameterized>=0.7.3; python_version >= '3.0'
trio; python_version >= '3.5'
typing_extensions>=3.7.2
12 changes: 12 additions & 0 deletions eng/pipelines/templates/jobs/ci.tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ parameters:
- name: CloudConfig
type: object
default: {}
- name: CondaArtifacts
type: object
default: []

jobs:
- job:
Expand Down Expand Up @@ -110,3 +113,12 @@ jobs:
parameters:
ServiceDirectory: ${{ parameters.ServiceDirectory }}
BuildTargetingString: ${{ parameters.BuildTargetingString }}

- template: ../steps/test-conda.yml
parameters:
CondaArtifacts: ${{ parameters.CondaArtifacts }}
ServiceDirectory: ${{ parameters.ServiceDirectory }}
TestMarkArgument: ${{ parameters.TestMarkArgument }}
OSVmImage: $(OSVmImage)
PythonVersion: $(PythonVersion)

1 change: 1 addition & 0 deletions eng/pipelines/templates/jobs/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ jobs:
TestTimeoutInMinutes: ${{ parameters.TestTimeoutInMinutes }}
ToxEnvParallel: ${{ parameters.ToxEnvParallel }}
InjectedPackages: ${{ parameters.InjectedPackages }}
CondaArtifacts: ${{ parameters.CondaArtifacts}}

- job: 'RunRegression'
condition: and(succeededOrFailed(), or(eq(variables['Run.Regression'], 'true'), and(eq(variables['Build.Reason'], 'Schedule'), eq(variables['System.TeamProject'],'internal'))))
Expand Down
2 changes: 1 addition & 1 deletion eng/pipelines/templates/stages/archetype-conda-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ parameters:
stages:
- ${{if and(eq(variables['Build.Reason'], 'Manual'), eq(variables['System.TeamProject'], 'internal'))}}:
- ${{ each artifact in parameters.CondaArtifacts }}:
- stage: Release_${{ replace(artifact.name, '-', '_') }}
- stage: Release_${{ replace(artifact.name, '-', '_') }}_To_Blob
displayName: 'Conda Release: ${{artifact.name}}'
dependsOn: ${{parameters.DependsOn}}
condition: and(succeeded(), ne(variables['SetDevVersion'], 'true'), ne(variables['Skip.Release'], 'true'), ne(variables['Build.Repository.Name'], 'Azure/azure-sdk-for-python-pr'))
Expand Down
4 changes: 2 additions & 2 deletions eng/pipelines/templates/steps/build-conda-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,9 @@ steps:

- bash: |
source activate ${{ artifact.name }}
conda-build . --output-folder "$(Agent.BuildDirectory)/conda/output" -c $(AzureSDKCondaChannel)
conda-build . --output-folder "$(Agent.BuildDirectory)/conda/output/${{ artifact.name }}" -c $(AzureSDKCondaChannel)
displayName: 'Activate Conda Environment and Build ${{ artifact.name }}'
workingDirectory: $(Build.SourcesDirectory)/sdk/${{ parameters.ServiceDirectory }}
workingDirectory: $(Build.SourcesDirectory)/sdk/${{ parameters.ServiceDirectory }}/conda-recipe

- template: /eng/common/pipelines/templates/steps/publish-artifact.yml
parameters:
Expand Down
146 changes: 146 additions & 0 deletions eng/pipelines/templates/steps/test-conda.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
parameters:
- name: TestPipeline
type: boolean
default: false
- name: ServiceDirectory
type: string
default: ''
- name: CondaArtifacts
type: object
default: []
- name: TestMarkArgument
type: string
default: ''
- name: PythonVersion
type: string
default: ''
- name: OSVmImage
type: string
default: ''

steps:
- task: DownloadPipelineArtifact@2
inputs:
artifactName: 'conda'
targetPath: $(Build.ArtifactStagingDirectory)

- template: /eng/common/pipelines/templates/steps/set-test-pipeline-version.yml
parameters:
PackageName: "azure-template"
ServiceDirectory: "template"
TestPipeline: ${{ parameters.TestPipeline }}

- task: UsePythonVersion@0
displayName: 'Use Python $(PythonVersion)'
inputs:
versionSpec: $(PythonVersion)

- pwsh: |
# due to faulty deployed scripts/how the path gets manipulated by conda actions on
# ubuntu and mac, we can't rely on bin/scripts being referenced correctly. see
# https://github.com/MicrosoftDocs/azure-devops-docs/issues/3812
$activateMethod = "source $($env:CONDA)/bin/activate"

# pypy3 is not a true python executable. in conda-land, we need to call it using pypy3, NOT python

# on windows, we need to add "--user" as otherwise pip won't successfully install/uninstall due to
# how windows holds reservation on pip.exe. this is unnecessary on ubuntu/mac.
$requirementSuffix = ""

# we always want to prepend the path with conda bin
Write-Host "##vso[task.prependpath]]$($env:CONDA)/bin"

if ($IsWindows) {
# powershell does not have an equivalent of call/source, which is necessary when
# using conda in azure devops. Note that we use `activate` natively here, as
# a later path prepend of the /scripts directory actually works.
$activateMethod = "call activate"
$requirementSuffix = " --user"

# on windows only, need to prepend with the scripts directory as well
Write-Host "##vso[task.prependpath]$($env:CONDA)/Scripts"
}

if("$(PythonVersion)" -eq "pypy3"){
Write-Host "##vso[task.setvariable variable=PyVersion]-c conda-forge pypy3.7 pip"
}
else {
Write-Host "##vso[task.setvariable variable=PyVersion]python=$(PythonVersion)"
}

# we will use these variables extensively later
Write-Host "##vso[task.setvariable variable=activate.method]$activateMethod"
Write-Host "##vso[task.setvariable variable=requirement.suffix]$requirementSuffix"
displayName: 'Evaluate OS Specific PATH and Parameters'

- ${{ each artifact in parameters.CondaArtifacts }}:
# due to the fact that `pypy3` and `conda-build` conda packages are INCOMPATIBLE, we have to create
# a separate env to install `conda-build` and use that to `conda index` the local file channel
- script: |
echo "conda create --name ${{ artifact.name }} $(PyVersion) --yes"
conda create --name ${{ artifact.name }} $(PyVersion) --yes

echo "conda create --name index-env --yes"
conda create --name index-env --yes

echo "conda install --name index-env --yes --quiet conda-build"
conda install --name index-env --yes --quiet conda-build

echo "$(activate.method) index-env"
$(activate.method) index-env

echo "conda index $(Build.ArtifactStagingDirectory)/${{ artifact.name }}"
conda index $(Build.ArtifactStagingDirectory)/${{ artifact.name }}
displayName: 'Prepare Conda Environment for Testing ${{ artifact.name }}, Index the Target Local Artifact'

- script: |
echo "$(activate.method) ${{ artifact.name }}"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given this is a script block instead of pwsh it will run on different shells on different OS's and echo is one of the commands that works different on linux vs windows. There is a little more info on why at https://dev.azure.com/azure-sdk/internal/_wiki/wikis/internal.wiki/2/Azure-DevOps-Pipeline-Guidance?anchor=use-full-cmdlet-names-for-better-scripts.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does it do differently? It's doing what I expect it to AFAICT.

Example

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An extra " around it isn't the end of the world IMO.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree the extra quote isn't the end of the world but that can start to fall apart when you are doing things like writing setvariable or other things that react different depending on the quoting around it. I know it bit me which is why I wrote about it in the wiki.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok. I'm only using this to output the command that's being invoked for visibility. Thanks for a heads up on the setvariable stuff especially. Gonna look for any instances of that.

$(activate.method) ${{ artifact.name }}

echo "python -m pip install -r eng/ci_tools.txt $(requirement.suffix)"
python -m pip install -r eng/ci_tools.txt $(requirement.suffix)
displayName: 'Activate Conda Environment and Install General Dependencies ${{ artifact.name }}'

- pwsh: |
mkdir $(Agent.BuildDirectory)/conda/
Write-Host "##vso[task.setvariable variable=conda.build]$(Agent.BuildDirectory)/conda_checkout"
displayName: 'Create Conda Working Directory for Testing'

- ${{ each checkout in artifact.checkout }}:
- pwsh:
Write-Host "Clean up Conda Build Directory $(conda.build)"
Remove-Item $(conda.build)/* -Recurse -Force
displayName: 'Clean Up Before Testing ${{ artifact.name }}'

- template: /eng/common/pipelines/templates/steps/sparse-checkout.yml
parameters:
Paths:
- "${{ checkout.checkout_path }}/${{ checkout.package }}"
- "tools/"
Repositories:
- Name: "Azure/azure-sdk-for-python"
Commitish: "${{ checkout.Package }}_${{ checkout.Version }}"
WorkingDirectory: "$(conda.build)"
SkipDefaultCheckout: true

- script: |
echo "conda install --name ${{ artifact.name }} azure-identity -c $(AzureSDKChannel) --yes"
conda install --name ${{ artifact.name }} azure-identity -c $(AzureSDKChannel) --yes

echo "conda install --name ${{ artifact.name }} ${{ artifact.name }} -c $(Build.ArtifactStagingDirectory)/${{ artifact.name }} --yes"
conda install --name ${{ artifact.name }} ${{ artifact.name }} -c $(Build.ArtifactStagingDirectory)/${{ artifact.name }} --yes

echo "$(activate.method) ${{ artifact.name }}"
$(activate.method) ${{ artifact.name }}

echo "python -m pip install -r $(Build.SourcesDirectory)/eng/conda_test_requirements.txt"
python -m pip install -r $(Build.SourcesDirectory)/eng/conda_test_requirements.txt
displayName: 'Install ${{ checkout.package }} Conda Package and Dev Requirements'
workingDirectory: $(conda.build)/${{ checkout.checkout_path }}/${{ checkout.package }}

- script: |
echo "$(activate.method) ${{ artifact.name }}"
$(activate.method) ${{ artifact.name }}
python -m pytest .
displayName: 'Run Tests for ${{ checkout.package }}'
workingDirectory: $(conda.build)/${{ checkout.checkout_path }}/${{ checkout.package }}
2 changes: 1 addition & 1 deletion scripts/devops_tasks/build_conda_artifacts.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@

VERSION_REGEX = re.compile(r"\s*AZURESDK_CONDA_VERSION\s*:\s*[\'](.*)[\']\s*")

SUMMARY_TEMPLATE = "- Generated from {}."
SUMMARY_TEMPLATE = " - Generated from {}."

NAMESPACE_EXTENSION_TEMPLATE = """__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: str
"""
Expand Down
2 changes: 1 addition & 1 deletion sdk/core/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ extends:
safeName: azurecommon
CondaArtifacts:
- name: azure-core
meta_source: meta.yaml
meta_source: conda-recipe/meta.yaml
common_root: azure
checkout:
- package: azure-core
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion sdk/storage/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ extends:
safeName: azuremgmtstorageimportexport
CondaArtifacts:
- name: azure-storage
meta_source: meta.yaml
meta_source: conda-recipe/meta.yaml
common_root: azure/storage
checkout:
- package: azure-storage-blob
Expand Down
File renamed without changes.