1parameters:
2  - name: ServiceDirectory
3    type: string
4    default: ''
5  - name: EnvVars
6    type: object
7    default: {}
8  - name: TimeoutInMinutes
9    type: number
10    default: 60
11  - name: PreSteps
12    type: object
13    default: []
14  - name: PostSteps
15    type: object
16    default: []
17  - name: CloudConfig
18    type: object
19    default: {}
20  - name: Location
21    type: string
22    default: ''
23  - name: Matrix
24    type: string
25  - name: DependsOn
26    type: string
27    default: ''
28  - name: UsePlatformContainer
29    type: boolean
30    default: false
31
32jobs:
33  - job:
34    displayName: Live Test on
35    dependsOn: ${{ parameters.DependsOn }}
36    condition: ne(${{ parameters.Matrix }}, '{}')
37    strategy:
38      maxParallel: 0
39      matrix: $[ ${{ parameters.Matrix }} ]
40
41    variables:
42      - template: ../variables/globals.yml
43      - name: ArmTemplateParameters
44        value: '@{}'
45
46    pool:
47      name: $(Pool)
48      vmImage: $(OSVmImage)
49
50    timeoutInMinutes: ${{ parameters.TimeoutInMinutes }}
51
52    ${{ if eq(parameters.UsePlatformContainer, 'true') }}:
53      container: $[ variables['Container'] ]
54
55    steps:
56      - ${{ parameters.PreSteps }}
57
58      - template: /eng/common/pipelines/templates/steps/verify-agent-os.yml
59        parameters:
60          AgentImage: $(OSVmImage)
61
62      - template: /eng/common/TestResources/build-test-resource-config.yml
63        parameters:
64          SubscriptionConfiguration: ${{ parameters.CloudConfig.SubscriptionConfiguration }}
65          SubscriptionConfigurations: ${{ parameters.CloudConfig.SubscriptionConfigurations }}
66
67      - template: /eng/common/TestResources/deploy-test-resources.yml
68        parameters:
69          ${{ if or(parameters.Location, parameters.CloudConfig.Location) }}:
70            Location: ${{ coalesce(parameters.Location, parameters.CloudConfig.Location) }}
71          ServiceDirectory: ${{ parameters.ServiceDirectory }}
72          SubscriptionConfiguration: $(SubscriptionConfiguration)
73          ArmTemplateParameters: $(ArmTemplateParameters)
74
75      - task: GoTool@0
76        inputs:
77          version: '$(GoVersion)'
78        displayName: "Select Go Version"
79
80      - template: ../steps/create-go-workspace.yml
81
82      - template: ../steps/set-scope.yml
83        parameters:
84          ServiceDirectory: ${{ parameters.ServiceDirectory }}
85          GoWorkspace: $(GO_WORKSPACE_PATH)
86
87      - template: ../steps/build-test.yml
88        parameters:
89          ServiceDirectory: ${{ parameters.ServiceDirectory }}
90          GoWorkspace: $(GO_WORKSPACE_PATH)
91          Scope: $(SCOPE)
92          Image: $(OSVmImage)
93          GoVersion: $(GoVersion)
94          RunTests: true
95
96      - ${{ parameters.PostSteps }}
97
98      - template: /eng/common/TestResources/remove-test-resources.yml
99        parameters:
100          ServiceDirectory: ${{ parameters.ServiceDirectory }}
101          SubscriptionConfiguration: $(SubscriptionConfiguration)
102