azuredevops/templates/obtain-prepare-workspace-job-template.yaml (109 lines of code) (raw):

# --------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- parameters: - name: pythonVersion displayName: Python Version type: string default: 3.9 values: - 3.7 - 3.8 - 3.9 # Defines workspace lifetime # Workspaces are used for workspaceWindowSeconds # and optionally deleted after another # workspaceWindowSeconds have elapsed - name: workspaceWindowSeconds displayName: Workspace Active Window (seconds) type: number default: 86000 # Just less than one day # Specifies whether to remove workspaces # older than 2*worksapceWindowSeconds - name: oldWorkspaceHandling displayName: How to handle old workspaces type: string default: Cull values: - Cull - Keep # Specifies the region in which to create # any new workspace - name: workspaceLocation displayName: Workspace Location type: string default: EastUS values: - CentralUSEUAP - EastUS - EastUS2EUAP - WestCentralUS - WestUS - UKSouth - name: cliSource displayName: Installation source for CLI type: string default: LatestRelease values: - LatestRelease - LatestDev - LatestTest - name: sdkSource displayName: Installation source for Python SDK type: string default: LatestRelease values: - LatestRelease - LatestDev - LatestTest - name: subscriptionName type: string - name: configFileDirectory type: string default: configFiles - name: configFileArtifact type: string default: WorkspaceConfiguration - name: poolImage type: string default: ubuntu-latest jobs: - job: displayName: "Obtain & Prepare Workspace" pool: vmImage: ${{parameters.poolImage}} steps: - template: python-preparation-step-template.yaml parameters: pythonVersion: ${{parameters.pythonVersion}} cliSource: ${{parameters.cliSource}} sdkSource: ${{parameters.sdkSource}} subscriptionName: ${{parameters.subscriptionName}} - task: AzureCLI@2 displayName: Obtain Workspace inputs: azureSubscription: "${{parameters.subscriptionName}}" scriptType: pscore scriptLocation: scriptPath scriptPath: scripts/Obtain-Workspace.ps1 failOnStandardError: false # Since the new CLI writes stuff there env: OLD_WORKSPACES_HANDLING: ${{parameters.oldWorkspaceHandling}} WORKSPACE_LOCATION: ${{parameters.workspaceLocation}} WORKSPACE_WINDOW_SECONDS: ${{parameters.workspaceWindowSeconds}} - powershell: | mkdir ${{parameters.configFileDirectory}} cp workspace.yaml ${{parameters.configFileDirectory}} cp config.json ${{parameters.configFileDirectory}} cp component_config.json ${{parameters.configFileDirectory}} displayName: Copy config files to separate directory - task: PublishPipelineArtifact@1 inputs: targetPath: ${{parameters.configFileDirectory}} artifactName: ${{parameters.configFileArtifact}} - task: AzureCLI@2 displayName: Create Compute inputs: azureSubscription: "${{parameters.subscriptionName}}" scriptType: pscore scriptLocation: scriptPath scriptPath: scripts/Create-Compute.ps1 failOnStandardError: false # Since the new CLI writes stuff there - task: AzureCLI@2 displayName: Run registration script inputs: azureSubscription: "${{parameters.subscriptionName}}" scriptType: pscore scriptLocation: inlineScript failOnStandardError: false # Since the new CLI writes stuff there inlineScript: | python scripts/register_azureml.py --workspace_config config.json --component_config component_config.json --base_directory .