Skip to content

Commit 3758211

Browse files
[8.19] (backport #8761) ci: always include 8.19 LTS release branch in snapshots of test versions (#8781)
* ci: always include 8.19 LTS release branch in snapshots of test versions (#8761) * ci: always include 8.19 LTS release branch in snapshots of test versions * update .upgrade-test-agent-versions.yml (cherry picked from commit e629b9e) # Conflicts: # testing/integration/testdata/.upgrade-test-agent-versions.yml * fix: resolve conflicts --------- Co-authored-by: Panos Koutsovasilis <[email protected]>
1 parent 74699ef commit 3758211

File tree

3 files changed

+31
-11
lines changed

3 files changed

+31
-11
lines changed

magefile.go

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"regexp"
2828
"runtime"
2929
"slices"
30+
"sort"
3031
"strconv"
3132
"strings"
3233
"sync"
@@ -2399,20 +2400,39 @@ func (Integration) BuildKubernetesTestData(ctx context.Context) error {
23992400
// UpdateVersions runs an update on the `.agent-versions.yml` fetching
24002401
// the latest version list from the artifact API.
24012402
func (Integration) UpdateVersions(ctx context.Context) error {
2402-
maxSnapshots := 3
2403+
agentVersion, err := version.ParseVersion(bversion.Agent)
2404+
if err != nil {
2405+
return fmt.Errorf("failed to parse agent version %s: %w", bversion.Agent, err)
2406+
}
2407+
2408+
// maxSnapshots is the maximum number of snapshots from
2409+
// releases branches we want to include in the snapshot list
2410+
maxSnapshots := 2
24032411

24042412
branches, err := git.GetReleaseBranches(ctx)
24052413
if err != nil {
24062414
return fmt.Errorf("failed to list release branches: %w", err)
24072415
}
24082416

2409-
// -1 because we manually add 7.17 below
2410-
if len(branches) > maxSnapshots-1 {
2411-
branches = branches[:maxSnapshots-1]
2417+
// limit the number of snapshot branches to the maxSnapshots
2418+
targetSnapshotBranches := branches[:maxSnapshots]
2419+
2420+
// we also want to always include the latest snapshot from lts release branches
2421+
ltsBranches := []string{
2422+
// 7.17 is an LTS branch so we need to include it always
2423+
"7.17",
2424+
}
2425+
2426+
// if we have a newer version of the agent, we want to include the latest snapshot from 8.19 LTS branch
2427+
if agentVersion.Major() > 8 || agentVersion.Major() == 8 && agentVersion.Minor() > 19 {
2428+
// order is important
2429+
ltsBranches = append([]string{"8.19"}, ltsBranches...)
24122430
}
24132431

2414-
// it's not a part of this repository, cannot be retrieved with `GetReleaseBranches`
2415-
branches = append(branches, "7.17")
2432+
// need to include the LTS branches, sort them and remove duplicates
2433+
targetSnapshotBranches = append(targetSnapshotBranches, ltsBranches...)
2434+
sort.Slice(targetSnapshotBranches, git.Less(targetSnapshotBranches))
2435+
targetSnapshotBranches = slices.Compact(targetSnapshotBranches)
24162436

24172437
// uncomment if want to have the current version snapshot on the list as well
24182438
// branches = append([]string{"master"}, branches...)
@@ -2422,7 +2442,7 @@ func (Integration) UpdateVersions(ctx context.Context) error {
24222442
CurrentMajors: 1,
24232443
PreviousMinors: 2,
24242444
PreviousMajors: 1,
2425-
SnapshotBranches: branches,
2445+
SnapshotBranches: targetSnapshotBranches,
24262446
}
24272447
b, _ := json.MarshalIndent(reqs, "", " ")
24282448
fmt.Println(string(b))

pkg/testing/tools/git/git.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,16 @@ func GetReleaseBranches(ctx context.Context) ([]string, error) {
4141
return nil, err
4242
}
4343

44-
sort.Slice(branchList, less(branchList))
44+
sort.Slice(branchList, Less(branchList))
4545

4646
return branchList, nil
4747
}
4848

4949
// we use this to emulate the maximum possible version value aliased by `.x`
5050
var maxIntString = strconv.Itoa(math.MaxInt)
5151

52-
// less makes sure we have our release branches in the right order
53-
func less(branches []string) func(i, j int) bool {
52+
// Less makes sure we have our release branches in the right order
53+
func Less(branches []string) func(i, j int) bool {
5454
return func(i, j int) bool {
5555
// we complete the versions, so we can parse semver and compare
5656
var (

pkg/testing/tools/git/git_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func TestLess(t *testing.T) {
4747
"wrong",
4848
}
4949

50-
sort.Slice(branchList, less(branchList))
50+
sort.Slice(branchList, Less(branchList))
5151

5252
require.Equal(t, expected, branchList)
5353
}

0 commit comments

Comments
 (0)