File tree 12 files changed +236
-6
lines changed
12 files changed +236
-6
lines changed Original file line number Diff line number Diff line change 3
3
<ProductDependencies >
4
4
</ProductDependencies >
5
5
<ToolsetDependencies >
6
- <Dependency Name =" Microsoft.DotNet.Arcade.Sdk" Version =" 8.0.0-beta.24311 .3" >
6
+ <Dependency Name =" Microsoft.DotNet.Arcade.Sdk" Version =" 8.0.0-beta.24321 .3" >
7
7
<Uri >https://github.com/dotnet/arcade</Uri >
8
- <Sha >c214b6ad17aedca4fa48294d80f6c52ef2463081 </Sha >
8
+ <Sha >a95bcc256e9bdf47394e4dab04872811c16daaea </Sha >
9
9
</Dependency >
10
- <Dependency Name =" Microsoft.DotNet.Helix.Sdk" Version =" 8.0.0-beta.24311 .3" >
10
+ <Dependency Name =" Microsoft.DotNet.Helix.Sdk" Version =" 8.0.0-beta.24321 .3" >
11
11
<Uri >https://github.com/dotnet/arcade</Uri >
12
- <Sha >c214b6ad17aedca4fa48294d80f6c52ef2463081 </Sha >
12
+ <Sha >a95bcc256e9bdf47394e4dab04872811c16daaea </Sha >
13
13
</Dependency >
14
14
</ToolsetDependencies >
15
15
</Dependencies >
Original file line number Diff line number Diff line change @@ -31,6 +31,12 @@ parameters:
31
31
# container and pool.
32
32
platform : {}
33
33
34
+ # If set to true and running on a non-public project,
35
+ # Internal blob storage locations will be enabled.
36
+ # This is not enabled by default because many repositories do not need internal sources
37
+ # and do not need to have the required service connections approved in the pipeline.
38
+ enableInternalSources : false
39
+
34
40
jobs :
35
41
- job : ${{ parameters.jobNamePrefix }}_${{ parameters.platform.name }}
36
42
displayName : Source-Build (${{ parameters.platform.name }})
62
68
clean : all
63
69
64
70
steps :
71
+ - ${{ if eq(parameters.enableInternalSources, true) }} :
72
+ - template : /eng/common/templates-official/steps/enable-internal-runtimes.yml
65
73
- template : /eng/common/templates-official/steps/source-build.yml
66
74
parameters :
67
75
platform : ${{ parameters.platform }}
Original file line number Diff line number Diff line change @@ -21,6 +21,12 @@ parameters:
21
21
# one job runs on 'defaultManagedPlatform'.
22
22
platforms : []
23
23
24
+ # If set to true and running on a non-public project,
25
+ # Internal nuget and blob storage locations will be enabled.
26
+ # This is not enabled by default because many repositories do not need internal sources
27
+ # and do not need to have the required service connections approved in the pipeline.
28
+ enableInternalSources : false
29
+
24
30
jobs :
25
31
26
32
- ${{ if ne(parameters.allCompletedJobId, '') }} :
38
44
parameters :
39
45
jobNamePrefix : ${{ parameters.jobNamePrefix }}
40
46
platform : ${{ platform }}
47
+ enableInternalSources : ${{ parameters.enableInternalSources }}
41
48
42
49
- ${{ if eq(length(parameters.platforms), 0) }} :
43
50
- template : /eng/common/templates-official/job/source-build.yml
44
51
parameters :
45
52
jobNamePrefix : ${{ parameters.jobNamePrefix }}
46
53
platform : ${{ parameters.defaultManagedPlatform }}
54
+ enableInternalSources : ${{ parameters.enableInternalSources }}
Original file line number Diff line number Diff line change
1
+ # Obtains internal runtime download credentials and populates the 'dotnetbuilds-internal-container-read-token-base64'
2
+ # variable with the base64-encoded SAS token, by default
3
+
4
+ parameters :
5
+ - name : federatedServiceConnection
6
+ type : string
7
+ default : ' dotnetbuilds-internal-read'
8
+ - name : outputVariableName
9
+ type : string
10
+ default : ' dotnetbuilds-internal-container-read-token-base64'
11
+ - name : expiryInHours
12
+ type : number
13
+ default : 1
14
+ - name : base64Encode
15
+ type : boolean
16
+ default : true
17
+
18
+ steps :
19
+ - ${{ if ne(variables['System.TeamProject'], 'public') }} :
20
+ - template : /eng/common/templates-official/steps/get-delegation-sas.yml
21
+ parameters :
22
+ federatedServiceConnection : ${{ parameters.federatedServiceConnection }}
23
+ outputVariableName : ${{ parameters.outputVariableName }}
24
+ expiryInHours : ${{ parameters.expiryInHours }}
25
+ base64Encode : ${{ parameters.base64Encode }}
26
+ storageAccount : dotnetbuilds
27
+ container : internal
28
+ permissions : rl
Original file line number Diff line number Diff line change
1
+ parameters :
2
+ - name : federatedServiceConnection
3
+ type : string
4
+ - name : outputVariableName
5
+ type : string
6
+ - name : expiryInHours
7
+ type : number
8
+ default : 1
9
+ - name : base64Encode
10
+ type : boolean
11
+ default : false
12
+ - name : storageAccount
13
+ type : string
14
+ - name : container
15
+ type : string
16
+ - name : permissions
17
+ type : string
18
+ default : ' rl'
19
+
20
+ steps :
21
+ - task : AzureCLI@2
22
+ displayName : ' Generate delegation SAS Token for ${{ parameters.storageAccount }}/${{ parameters.container }}'
23
+ inputs :
24
+ azureSubscription : ${{ parameters.federatedServiceConnection }}
25
+ scriptType : ' pscore'
26
+ scriptLocation : ' inlineScript'
27
+ inlineScript : |
28
+ # Calculate the expiration of the SAS token and convert to UTC
29
+ $expiry = (Get-Date).AddHours(${{ parameters.expiryInHours }}).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
30
+
31
+ $sas = az storage container generate-sas --account-name ${{ parameters.storageAccount }} --name ${{ parameters.container }} --permissions ${{ parameters.permissions }} --expiry $expiry --auth-mode login --as-user -o tsv
32
+
33
+ if ($LASTEXITCODE -ne 0) {
34
+ Write-Error "Failed to generate SAS token."
35
+ exit 1
36
+ }
37
+
38
+ if ('${{ parameters.base64Encode }}' -eq 'true') {
39
+ $sas = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($sas))
40
+ }
41
+
42
+ Write-Host "Setting '${{ parameters.outputVariableName }}' with the access token value"
43
+ Write-Host "##vso[task.setvariable variable=${{ parameters.outputVariableName }};issecret=true]$sas"
Original file line number Diff line number Diff line change
1
+ parameters :
2
+ - name : federatedServiceConnection
3
+ type : string
4
+ - name : outputVariableName
5
+ type : string
6
+ # Resource to get a token for. Common values include:
7
+ # - '499b84ac-1321-427f-aa17-267ca6975798' for Azure DevOps
8
+ # - 'https://storage.azure.com/' for storage
9
+ # Defaults to Azure DevOps
10
+ - name : resource
11
+ type : string
12
+ default : ' 499b84ac-1321-427f-aa17-267ca6975798'
13
+
14
+ steps :
15
+ - task : AzureCLI@2
16
+ displayName : ' Getting federated access token for feeds'
17
+ inputs :
18
+ azureSubscription : ${{ parameters.federatedServiceConnection }}
19
+ scriptType : ' pscore'
20
+ scriptLocation : ' inlineScript'
21
+ inlineScript : |
22
+ $accessToken = az account get-access-token --query accessToken --resource ${{ parameters.resource }} --output tsv
23
+ if ($LASTEXITCODE -ne 0) {
24
+ Write-Error "Failed to get access token for resource '${{ parameters.resource }}'"
25
+ exit 1
26
+ }
27
+ Write-Host "Setting '${{ parameters.outputVariableName }}' with the access token value"
28
+ Write-Host "##vso[task.setvariable variable=${{ parameters.outputVariableName }};issecret=true]$accessToken"
Original file line number Diff line number Diff line change @@ -31,6 +31,12 @@ parameters:
31
31
# container and pool.
32
32
platform : {}
33
33
34
+ # If set to true and running on a non-public project,
35
+ # Internal blob storage locations will be enabled.
36
+ # This is not enabled by default because many repositories do not need internal sources
37
+ # and do not need to have the required service connections approved in the pipeline.
38
+ enableInternalSources : false
39
+
34
40
jobs :
35
41
- job : ${{ parameters.jobNamePrefix }}_${{ parameters.platform.name }}
36
42
displayName : Source-Build (${{ parameters.platform.name }})
61
67
clean : all
62
68
63
69
steps :
70
+ - ${{ if eq(parameters.enableInternalSources, true) }} :
71
+ - template : /eng/common/templates/steps/enable-internal-runtimes.yml
64
72
- template : /eng/common/templates/steps/source-build.yml
65
73
parameters :
66
74
platform : ${{ parameters.platform }}
Original file line number Diff line number Diff line change @@ -21,6 +21,12 @@ parameters:
21
21
# one job runs on 'defaultManagedPlatform'.
22
22
platforms : []
23
23
24
+ # If set to true and running on a non-public project,
25
+ # Internal nuget and blob storage locations will be enabled.
26
+ # This is not enabled by default because many repositories do not need internal sources
27
+ # and do not need to have the required service connections approved in the pipeline.
28
+ enableInternalSources : false
29
+
24
30
jobs :
25
31
26
32
- ${{ if ne(parameters.allCompletedJobId, '') }} :
38
44
parameters :
39
45
jobNamePrefix : ${{ parameters.jobNamePrefix }}
40
46
platform : ${{ platform }}
47
+ enableInternalSources : ${{ parameters.enableInternalSources }}
41
48
42
49
- ${{ if eq(length(parameters.platforms), 0) }} :
43
50
- template : /eng/common/templates/job/source-build.yml
44
51
parameters :
45
52
jobNamePrefix : ${{ parameters.jobNamePrefix }}
46
53
platform : ${{ parameters.defaultManagedPlatform }}
54
+ enableInternalSources : ${{ parameters.enableInternalSources }}
Original file line number Diff line number Diff line change
1
+ # Obtains internal runtime download credentials and populates the 'dotnetbuilds-internal-container-read-token-base64'
2
+ # variable with the base64-encoded SAS token, by default
3
+
4
+ parameters :
5
+ - name : federatedServiceConnection
6
+ type : string
7
+ default : ' dotnetbuilds-internal-read'
8
+ - name : outputVariableName
9
+ type : string
10
+ default : ' dotnetbuilds-internal-container-read-token-base64'
11
+ - name : expiryInHours
12
+ type : number
13
+ default : 1
14
+ - name : base64Encode
15
+ type : boolean
16
+ default : true
17
+
18
+ steps :
19
+ - ${{ if ne(variables['System.TeamProject'], 'public') }} :
20
+ - template : /eng/common/templates/steps/get-delegation-sas.yml
21
+ parameters :
22
+ federatedServiceConnection : ${{ parameters.federatedServiceConnection }}
23
+ outputVariableName : ${{ parameters.outputVariableName }}
24
+ expiryInHours : ${{ parameters.expiryInHours }}
25
+ base64Encode : ${{ parameters.base64Encode }}
26
+ storageAccount : dotnetbuilds
27
+ container : internal
28
+ permissions : rl
Original file line number Diff line number Diff line change
1
+ parameters :
2
+ - name : federatedServiceConnection
3
+ type : string
4
+ - name : outputVariableName
5
+ type : string
6
+ - name : expiryInHours
7
+ type : number
8
+ default : 1
9
+ - name : base64Encode
10
+ type : boolean
11
+ default : false
12
+ - name : storageAccount
13
+ type : string
14
+ - name : container
15
+ type : string
16
+ - name : permissions
17
+ type : string
18
+ default : ' rl'
19
+
20
+ steps :
21
+ - task : AzureCLI@2
22
+ displayName : ' Generate delegation SAS Token for ${{ parameters.storageAccount }}/${{ parameters.container }}'
23
+ inputs :
24
+ azureSubscription : ${{ parameters.federatedServiceConnection }}
25
+ scriptType : ' pscore'
26
+ scriptLocation : ' inlineScript'
27
+ inlineScript : |
28
+ # Calculate the expiration of the SAS token and convert to UTC
29
+ $expiry = (Get-Date).AddHours(${{ parameters.expiryInHours }}).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
30
+
31
+ $sas = az storage container generate-sas --account-name ${{ parameters.storageAccount }} --name ${{ parameters.container }} --permissions ${{ parameters.permissions }} --expiry $expiry --auth-mode login --as-user -o tsv
32
+
33
+ if ($LASTEXITCODE -ne 0) {
34
+ Write-Error "Failed to generate SAS token."
35
+ exit 1
36
+ }
37
+
38
+ if ('${{ parameters.base64Encode }}' -eq 'true') {
39
+ $sas = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($sas))
40
+ }
41
+
42
+ Write-Host "Setting '${{ parameters.outputVariableName }}' with the access token value"
43
+ Write-Host "##vso[task.setvariable variable=${{ parameters.outputVariableName }};issecret=true]$sas"
Original file line number Diff line number Diff line change
1
+ parameters :
2
+ - name : federatedServiceConnection
3
+ type : string
4
+ - name : outputVariableName
5
+ type : string
6
+ # Resource to get a token for. Common values include:
7
+ # - '499b84ac-1321-427f-aa17-267ca6975798' for Azure DevOps
8
+ # - 'https://storage.azure.com/' for storage
9
+ # Defaults to Azure DevOps
10
+ - name : resource
11
+ type : string
12
+ default : ' 499b84ac-1321-427f-aa17-267ca6975798'
13
+
14
+ steps :
15
+ - task : AzureCLI@2
16
+ displayName : ' Getting federated access token for feeds'
17
+ inputs :
18
+ azureSubscription : ${{ parameters.federatedServiceConnection }}
19
+ scriptType : ' pscore'
20
+ scriptLocation : ' inlineScript'
21
+ inlineScript : |
22
+ $accessToken = az account get-access-token --query accessToken --resource ${{ parameters.resource }} --output tsv
23
+ if ($LASTEXITCODE -ne 0) {
24
+ Write-Error "Failed to get access token for resource '${{ parameters.resource }}'"
25
+ exit 1
26
+ }
27
+ Write-Host "Setting '${{ parameters.outputVariableName }}' with the access token value"
28
+ Write-Host "##vso[task.setvariable variable=${{ parameters.outputVariableName }};issecret=true]$accessToken"
Original file line number Diff line number Diff line change 3
3
"dotnet" : " 8.0.101"
4
4
},
5
5
"msbuild-sdks" : {
6
- "Microsoft.DotNet.Arcade.Sdk" : " 8.0.0-beta.24311 .3" ,
7
- "Microsoft.DotNet.Helix.Sdk" : " 8.0.0-beta.24311 .3"
6
+ "Microsoft.DotNet.Arcade.Sdk" : " 8.0.0-beta.24321 .3" ,
7
+ "Microsoft.DotNet.Helix.Sdk" : " 8.0.0-beta.24321 .3"
8
8
}
9
9
}
You can’t perform that action at this time.
0 commit comments