Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
10 changes: 0 additions & 10 deletions .ci/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,6 @@ pr:
include:
- master

parameters:
- name: DSCVersion
default: '3.2.0-rc.1'
type: string

resources:
repositories:
- repository: ComplianceRepo
Expand Down Expand Up @@ -127,34 +122,29 @@ stages:
jobName: TestPkgWin
displayName: PowerShell Core on Windows
imageName: windows-latest
DSCVersion: ${{ parameters.DSCVersion }}

- template: test.yml
parameters:
jobName: TestPkgWinPS
displayName: Windows PowerShell on Windows
imageName: windows-latest
powershellExecutable: powershell
DSCVersion: ${{ parameters.DSCVersion }}

- template: test.yml
parameters:
jobName: TestPkgUbuntu
displayName: PowerShell Core on Ubuntu
imageName: ubuntu-latest
DSCVersion: ${{ parameters.DSCVersion }}

- template: test.yml
parameters:
jobName: TestPkgWinMacOS
displayName: PowerShell Core on macOS
imageName: macOS-latest
DSCVersion: ${{ parameters.DSCVersion }}

- template: test.yml
parameters:
jobName: TestPkgWinAzAuth
displayName: AzAuth PowerShell Core on Windows
imageName: windows-latest
useAzAuth: true
DSCVersion: ${{ parameters.DSCVersion }}
89 changes: 69 additions & 20 deletions .ci/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ parameters:
powershellExecutable: pwsh
buildDirectory: '.'
useAzAuth: false
DSCVersion: '3.2.0-rc.1'

jobs:
- job: ${{ parameters.jobName }}
Expand Down Expand Up @@ -97,39 +96,89 @@ jobs:
condition: eq(${{ parameters.useAzAuth }}, false)

- pwsh: |
$version = '${{ parameters.DSCVersion }}'
$packageName = "DSC-$version"
$ext = 'tar.gz'
$executableName = 'dsc'
$executableExt = if ($IsWindows) { '.exe' } else { '' }

$uri = if ($IsWindows) {
$ext = 'zip'
"https://github.com/PowerShell/DSC/releases/download/v$version/DSC-$version-x86_64-pc-windows-msvc.zip"
} elseif ($IsLinux) {
"https://github.com/PowerShell/DSC/releases/download/v$version/DSC-$version-x86_64-linux.tar.gz"
# $version = '${{ parameters.DSCVersion }}'
# $packageName = "DSC-$version"
# $ext = 'tar.gz'
# $executableName = 'dsc'
# $executableExt = if ($IsWindows) { '.exe' } else { '' }

# $uri = if ($IsWindows) {
# $ext = 'zip'
# "https://github.com/PowerShell/DSC/releases/download/v$version/DSC-$version-x86_64-pc-windows-msvc.zip"
# } elseif ($IsLinux) {
# "https://github.com/PowerShell/DSC/releases/download/v$version/DSC-$version-x86_64-linux.tar.gz"
# }
# elseif ($IsMacOS) {
# "https://github.com/PowerShell/DSC/releases/download/v$version/DSC-$version-x86_64-apple-darwin.tar.gz"

# }
# else {
# throw "Unsupported OS platform"
# }

# $destPath = Join-Path -Path $env:AGENT_TEMPDIRECTORY -ChildPath "$packageName.$ext"

# Write-Verbose -Verbose "Downloading DSC v3 from $uri to $destPath"

# Invoke-WebRequest -Uri $uri -OutFile $destPath

$repo = "PowerShell/DSC"
$api = "https://api.github.com/repos/$repo/releases"

$headers = @{
"User-Agent" = "pwsh"
"Accept" = "application/vnd.github+json"
}
elseif ($IsMacOS) {
"https://github.com/PowerShell/DSC/releases/download/v$version/DSC-$version-x86_64-apple-darwin.tar.gz"

# Get releases
$releases = Invoke-RestMethod -Uri $api -Headers $headers
Comment thread
adityapatwardhan marked this conversation as resolved.
Outdated

# Pick latest by publish date (handles prerelease vs stable automatically)
$latest = $releases |
Sort-Object published_at -Descending |
Select-Object -First 1

Write-Host "Latest version: $($latest.tag_name) (prerelease=$($latest.prerelease))"

if ($IsWindows) {
$assetFilter = "windows-msvc" # adjust as needed
}
elseif ($IsMacOs) {
$assetFilter = "apple-darwin" # adjust as needed
}
else {
throw "Unsupported OS platform"
$assetFilter = "linux" # adjust as needed
}

$destPath = Join-Path -Path $env:AGENT_TEMPDIRECTORY -ChildPath "$packageName.$ext"
$assets = $latest.assets |
Where-Object { $_.name -match $assetFilter }

Write-Verbose -Verbose "Downloading DSC v3 from $uri to $destPath"
Write-Host "Filtered assets: $($assets.Count)"

$selectedAsset = $assets | Select-Object -First 1
Comment thread
adityapatwardhan marked this conversation as resolved.

Write-Host "Selected asset: $($selectedAsset.name)"

$outFile = Join-Path $PWD $selectedAsset.name

Write-Host "Downloading $($selectedAsset.name)"

Invoke-WebRequest `
-Uri $selectedAsset.browser_download_url `
-Headers @{ "User-Agent"="pwsh" } `
-OutFile $outFile

Invoke-WebRequest -Uri $uri -OutFile $destPath

if ($IsWindows) {
Expand-Archive -Path $destPath -DestinationPath $env:AGENT_TEMPDIRECTORY -Force -Verbose
Expand-Archive -Path $outFile -DestinationPath $env:AGENT_TEMPDIRECTORY -Force -Verbose
}
else {
tar -xzf $destPath -C $env:AGENT_TEMPDIRECTORY
tar -xzf $outFile -C $env:AGENT_TEMPDIRECTORY
}

$executableName = 'dsc'
$executableExt = if ($IsWindows) { '.exe' } else { '' }

$executableFileName = $executableName + $executableExt

$executable = Get-ChildItem -Path $env:AGENT_TEMPDIRECTORY -File -Recurse -Verbose | Where-Object { $_.Name -eq $executableFileName } | Select-Object -First 1
Expand Down
Loading