|
22 | 22 | fail-fast: false |
23 | 23 | matrix: |
24 | 24 | os: [ubuntu-latest, windows-latest, macOS-latest] |
25 | | - version: ['latest', '7.4.7', '7.5.0'] |
| 25 | + version: ['latest', 'preview', '7.4.7', '7.5.0'] |
26 | 26 | runs-on: ${{ matrix.os }} |
27 | 27 | name: '${{ matrix.os }} - [${{ matrix.version }}]' |
28 | 28 | steps: |
|
34 | 34 | - name: Action-Test |
35 | 35 | uses: ./ |
36 | 36 | with: |
37 | | - Version: ${{ matrix.version }} |
| 37 | + Version: ${{ matrix.version == 'preview' && 'latest' || matrix.version }} |
| 38 | + Preview: ${{ matrix.version == 'preview' && 'true' || 'false' }} |
38 | 39 |
|
39 | 40 | - name: Verify installed version |
40 | 41 | shell: pwsh |
|
44 | 45 | # Requested version that came from the matrix |
45 | 46 | $requested = '${{ matrix.version }}' |
46 | 47 |
|
| 48 | + # When 'preview' → resolve to latest preview release |
| 49 | + if ($requested.Trim().ToLower() -eq 'preview') { |
| 50 | + $releases = Invoke-RestMethod -Uri 'https://api.github.com/repos/PowerShell/PowerShell/releases' ` |
| 51 | + -Headers @{ |
| 52 | + 'Accept' = 'application/vnd.github+json' |
| 53 | + 'Authorization' = "Bearer $($env:GITHUB_TOKEN)" |
| 54 | + 'X-GitHub-Api-Version' = '2022-11-28' |
| 55 | + } |
| 56 | + $requested = ($releases | Where-Object { $_.prerelease -eq $true } | Select-Object -First 1).tag_name.TrimStart('v') |
| 57 | + Write-Host "Resolved 'preview' → $requested" |
| 58 | + } |
47 | 59 | # When empty / 'null' / 'latest' → resolve to latest stable release |
48 | | - if ([string]::IsNullOrWhiteSpace($requested) -or |
| 60 | + elseif ([string]::IsNullOrWhiteSpace($requested) -or |
49 | 61 | $requested.Trim().ToLower() -in @('latest','null')) { |
50 | 62 |
|
51 | 63 | $requested = ( |
|
0 commit comments