@@ -5,7 +5,6 @@ parameters:
55 powershellExecutable : pwsh
66 buildDirectory : ' .'
77 useAzAuth : false
8- DSCVersion : ' 3.2.0-rc.1'
98
109jobs :
1110- job : ${{ parameters.jobName }}
@@ -97,39 +96,89 @@ jobs:
9796 condition : eq(${{ parameters.useAzAuth }}, false)
9897
9998 - pwsh : |
100- $version = '${{ parameters.DSCVersion }}'
101- $packageName = "DSC-$version"
102- $ext = 'tar.gz'
103- $executableName = 'dsc'
104- $executableExt = if ($IsWindows) { '.exe' } else { '' }
105-
106- $uri = if ($IsWindows) {
107- $ext = 'zip'
108- "https://github.com/PowerShell/DSC/releases/download/v$version/DSC-$version-x86_64-pc-windows-msvc.zip"
109- } elseif ($IsLinux) {
110- "https://github.com/PowerShell/DSC/releases/download/v$version/DSC-$version-x86_64-linux.tar.gz"
99+ # $version = '${{ parameters.DSCVersion }}'
100+ # $packageName = "DSC-$version"
101+ # $ext = 'tar.gz'
102+ # $executableName = 'dsc'
103+ # $executableExt = if ($IsWindows) { '.exe' } else { '' }
104+
105+ # $uri = if ($IsWindows) {
106+ # $ext = 'zip'
107+ # "https://github.com/PowerShell/DSC/releases/download/v$version/DSC-$version-x86_64-pc-windows-msvc.zip"
108+ # } elseif ($IsLinux) {
109+ # "https://github.com/PowerShell/DSC/releases/download/v$version/DSC-$version-x86_64-linux.tar.gz"
110+ # }
111+ # elseif ($IsMacOS) {
112+ # "https://github.com/PowerShell/DSC/releases/download/v$version/DSC-$version-x86_64-apple-darwin.tar.gz"
113+
114+ # }
115+ # else {
116+ # throw "Unsupported OS platform"
117+ # }
118+
119+ # $destPath = Join-Path -Path $env:AGENT_TEMPDIRECTORY -ChildPath "$packageName.$ext"
120+
121+ # Write-Verbose -Verbose "Downloading DSC v3 from $uri to $destPath"
122+
123+ # Invoke-WebRequest -Uri $uri -OutFile $destPath
124+
125+ $repo = "PowerShell/DSC"
126+ $api = "https://api.github.com/repos/$repo/releases"
127+
128+ $headers = @{
129+ "User-Agent" = "pwsh"
130+ "Accept" = "application/vnd.github+json"
111131 }
112- elseif ($IsMacOS) {
113- "https://github.com/PowerShell/DSC/releases/download/v$version/DSC-$version-x86_64-apple-darwin.tar.gz"
114132
133+ # Get releases
134+ $releases = Invoke-RestMethod -Uri $api -Headers $headers
135+
136+ # Pick latest by publish date (handles prerelease vs stable automatically)
137+ $latest = $releases |
138+ Sort-Object published_at -Descending |
139+ Select-Object -First 1
140+
141+ Write-Host "Latest version: $($latest.tag_name) (prerelease=$($latest.prerelease))"
142+
143+ if ($IsWindows) {
144+ $assetFilter = "windows-msvc" # adjust as needed
145+ }
146+ elseif ($IsMacOs) {
147+ $assetFilter = "apple-darwin" # adjust as needed
115148 }
116149 else {
117- throw "Unsupported OS platform"
150+ $assetFilter = "linux" # adjust as needed
118151 }
119152
120- $destPath = Join-Path -Path $env:AGENT_TEMPDIRECTORY -ChildPath "$packageName.$ext"
153+ $assets = $latest.assets |
154+ Where-Object { $_.name -match $assetFilter }
121155
122- Write-Verbose -Verbose "Downloading DSC v3 from $uri to $destPath"
156+ Write-Host "Filtered assets: $($assets.Count)"
157+
158+ $selectedAsset = $assets | Select-Object -First 1
159+
160+ Write-Host "Selected asset: $($selectedAsset.name)"
161+
162+ $outFile = Join-Path $PWD $selectedAsset.name
163+
164+ Write-Host "Downloading $($selectedAsset.name)"
165+
166+ Invoke-WebRequest `
167+ -Uri $selectedAsset.browser_download_url `
168+ -Headers @{ "User-Agent"="pwsh" } `
169+ -OutFile $outFile
123170
124- Invoke-WebRequest -Uri $uri -OutFile $destPath
125171
126172 if ($IsWindows) {
127- Expand-Archive -Path $destPath -DestinationPath $env:AGENT_TEMPDIRECTORY -Force -Verbose
173+ Expand-Archive -Path $outFile -DestinationPath $env:AGENT_TEMPDIRECTORY -Force -Verbose
128174 }
129175 else {
130- tar -xzf $destPath -C $env:AGENT_TEMPDIRECTORY
176+ tar -xzf $outFile -C $env:AGENT_TEMPDIRECTORY
131177 }
132178
179+ $executableName = 'dsc'
180+ $executableExt = if ($IsWindows) { '.exe' } else { '' }
181+
133182 $executableFileName = $executableName + $executableExt
134183
135184 $executable = Get-ChildItem -Path $env:AGENT_TEMPDIRECTORY -File -Recurse -Verbose | Where-Object { $_.Name -eq $executableFileName } | Select-Object -First 1
0 commit comments