Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
92 changes: 68 additions & 24 deletions eng/pipelines/templates/stages/archetype-conda-release.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,76 @@
parameters:
- name: CondaArtifacts
type: object
- name: DependsOn
type: string
default: Build
- name: ArtifactName
type: string
default: 'conda'

stages:
# - ${{if and(eq(variables['Build.Reason'], 'Manual'), eq(variables['System.TeamProject'], 'internal'))}}:
- stage: Release
displayName: 'Conda Release'
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'))
jobs:
- deployment: CondaRelease
displayName: "Publish Conda Artifact"
# environment: pypi

pool:
name: 'azsdk-pool'
demands: ImageOverride -equals 'ubuntu-24.04'

strategy:
runOnce:
deploy:
steps:
- checkout: self
- ${{ each artifact in parameters.CondaArtifacts }}:
- ${{if and(in(variables['Build.Reason'], 'Manual', ''), eq(variables['System.TeamProject'], 'internal'))}}:
- stage: Release_Conda
displayName: 'Release Conda Packages'
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'))
jobs:
- deployment: PublishCondaPackages
displayName: "Publish Conda Packages to Anaconda"
environment: package-publish

templateContext:
type: releaseJob
isProduction: true
inputs:
- input: pipelineArtifact
artifactName: ${{parameters.ArtifactName}}
targetPath: $(Pipeline.Workspace)/${{parameters.ArtifactName}}

pool:
name: azsdk-pool
image: ubuntu-24.04
os: linux

strategy:
runOnce:
deploy:
steps:
- checkout: self

- task: UsePythonVersion@0
inputs:
versionSpec: '3.12'

- pwsh: |
Write-Host "${{ artifact.name }} is ${{ artifact.inBatch }}"
Get-ChildItem -Recurse $(Pipeline.Workspace)/${{parameters.ArtifactName}}
workingDirectory: $(Pipeline.Workspace)
displayName: Output Visible Conda Artifact
displayName: Output Visible Conda Artifacts

- script: |
set -e
python -m pip install anaconda-client
displayName: Install anaconda-client

- pwsh: |
$packages = Get-ChildItem -Path "$(Pipeline.Workspace)/${{parameters.ArtifactName}}/noarch" -Filter "*.conda"
foreach ($package in $packages) {
Write-Host "Uploading: $($package.FullName)"
$success = $false
for ($attempt = 1; $attempt -le 3; $attempt++) {
anaconda upload --user $env:CONDA_USERNAME --skip-existing --private $package.FullName
if ($LASTEXITCODE -eq 0) {
$success = $true
break
}
Write-Host "Attempt $attempt failed, retrying..."
Start-Sleep -Seconds 5
}
if (-not $success) {
Write-Error "Failed to upload $($package.Name) after 3 attempts"
exit 1
}
}
Write-Host "Uploaded all conda packages to Anaconda"
displayName: 'Publish all Conda packages to Anaconda'
env:
ANACONDA_API_TOKEN: $(conda-release-apikey)
CONDA_USERNAME: Microsoft
24 changes: 23 additions & 1 deletion eng/pipelines/templates/stages/conda-sdk-client.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
trigger:
branches:
include:
- main
paths:
include:
- conda/conda-recipes/*
- conda/conda-releaselogs/*
- eng/pipelines/templates/stages/conda-sdk-client.yml
pr:
branches:
include:
- main
paths:
include:
- conda/conda-recipes/*
- conda/conda-releaselogs/*
- eng/pipelines/templates/stages/conda-sdk-client.yml

parameters:
- name: release_msal
displayName: 'msal'
Expand Down Expand Up @@ -906,4 +925,7 @@ extends:
- package: azure-mgmt-workloadssapvirtualinstance
version: 1.0.0


- template: /eng/pipelines/templates/stages/archetype-conda-release.yml@self
parameters:
DependsOn: Build_Universal_Dependencies
ArtifactName: conda
Loading