Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
3 changes: 2 additions & 1 deletion .github/workflows/test-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ jobs:
run: |
# We need to get the version here and make it an environment variable
# It is used to install via bootstrap and in the test
# The version is in the instance name
# The version is in the instance name:
# ["stable-3006", "stable-3006-8", "stable-3007", "stable-3007-1", "latest"]
$instance = "${{ matrix.instance }}"
$version = $instance -split "-",2
if ( $version.Count -gt 1 ) {
Expand Down
27 changes: 19 additions & 8 deletions bootstrap-salt.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -207,25 +207,36 @@ function Get-AvailableVersions {
Write-Verbose "- $_"
}

# Get the latest version, should be the last in the list
Write-Verbose "Getting latest available version"
$latest = $available_versions | Select-Object -Last 1
Write-Verbose "Latest available version: $latest"

# Create a versions table
# This will have the latest version available, the latest version available
# for each major version, and every version available. This makes the
# version lookup logic easier. The contents of the versions table can be
# found by running -Verbose
Write-Verbose "Populating the versions table"
$versions_table = [ordered]@{"latest"=$latest}
$versions_table = [ordered]@{}
$available_versions | ForEach-Object {
$versions_table[$(Get-MajorVersion $_)] = $_
$major_version = $(Get-MajorVersion $_)
if ( $versions_table.Keys -contains $major_version ) {
if ( [System.Version]$_ -gt [System.Version]$versions_table[$major_version] ) {
$versions_table[$major_version] = $_
}
} else {
$versions_table[$major_version] = $_
}

if ( $versions_table -contains "latest" ) {
if ( [System.Version]$_ -gt [System.Version]$versions_table["latest"] ) {
$versions_table["latest"] = $_
}
} else {
$versions_table["latest"] = $_
}

$versions_table[$_.ToLower()] = $_.ToLower()
}

Write-Verbose "Versions Table:"
$versions_table | Sort-Object Name | Out-String | ForEach-Object {
$versions_table.GetEnumerator() | Sort-Object Name | Out-String | ForEach-Object {
Write-Verbose "$_"
}

Expand Down
18 changes: 14 additions & 4 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import json
import os
import requests
from packaging.version import Version

import pytest
import requests

API_URL = (
"https://packages.broadcom.com/artifactory/api/storage/saltproject-generic/windows"
Expand All @@ -27,9 +28,18 @@ def target_salt_version():
version = folder["uri"].strip("/")
versions[version] = version
# We're trying to get the latest major version and latest overall
maj_version = version.split(".")[0]
versions[maj_version] = version
versions["latest"] = version
maj_ver, _ = version.split(".")
if maj_ver in versions:
if Version(version) > Version(versions[maj_ver]):
versions[maj_ver] = version
else:
versions[maj_ver] = version

if "latest" in versions:
if Version(version) > Version(versions["latest"]):
versions["latest"] = version
else:
versions["latest"] = version

if target_salt.startswith("v"):
target_salt = target_salt[1:]
Expand Down
1 change: 1 addition & 0 deletions tests/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
pytest
requests
packaging
Loading