Skip to content

Commit 7277c27

Browse files
[8.17] (backport #8761) ci: always include 8.19 LTS release branch in snapshots of test versions (#8779)
* 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 2e5c3f5 commit 7277c27

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"
@@ -2076,20 +2077,39 @@ func (Integration) BuildKubernetesTestData(ctx context.Context) error {
20762077
// UpdateVersions runs an update on the `.agent-versions.yml` fetching
20772078
// the latest version list from the artifact API.
20782079
func (Integration) UpdateVersions(ctx context.Context) error {
2079-
maxSnapshots := 3
2080+
agentVersion, err := version.ParseVersion(bversion.Agent)
2081+
if err != nil {
2082+
return fmt.Errorf("failed to parse agent version %s: %w", bversion.Agent, err)
2083+
}
2084+
2085+
// maxSnapshots is the maximum number of snapshots from
2086+
// releases branches we want to include in the snapshot list
2087+
maxSnapshots := 2
20802088

20812089
branches, err := git.GetReleaseBranches(ctx)
20822090
if err != nil {
20832091
return fmt.Errorf("failed to list release branches: %w", err)
20842092
}
20852093

2086-
// -1 because we manually add 7.17 below
2087-
if len(branches) > maxSnapshots-1 {
2088-
branches = branches[:maxSnapshots-1]
2094+
// limit the number of snapshot branches to the maxSnapshots
2095+
targetSnapshotBranches := branches[:maxSnapshots]
2096+
2097+
// we also want to always include the latest snapshot from lts release branches
2098+
ltsBranches := []string{
2099+
// 7.17 is an LTS branch so we need to include it always
2100+
"7.17",
2101+
}
2102+
2103+
// if we have a newer version of the agent, we want to include the latest snapshot from 8.19 LTS branch
2104+
if agentVersion.Major() > 8 || agentVersion.Major() == 8 && agentVersion.Minor() > 19 {
2105+
// order is important
2106+
ltsBranches = append([]string{"8.19"}, ltsBranches...)
20892107
}
20902108

2091-
// it's not a part of this repository, cannot be retrieved with `GetReleaseBranches`
2092-
branches = append(branches, "7.17")
2109+
// need to include the LTS branches, sort them and remove duplicates
2110+
targetSnapshotBranches = append(targetSnapshotBranches, ltsBranches...)
2111+
sort.Slice(targetSnapshotBranches, git.Less(targetSnapshotBranches))
2112+
targetSnapshotBranches = slices.Compact(targetSnapshotBranches)
20932113

20942114
// uncomment if want to have the current version snapshot on the list as well
20952115
// branches = append([]string{"master"}, branches...)
@@ -2099,7 +2119,7 @@ func (Integration) UpdateVersions(ctx context.Context) error {
20992119
CurrentMajors: 1,
21002120
PreviousMinors: 2,
21012121
PreviousMajors: 1,
2102-
SnapshotBranches: branches,
2122+
SnapshotBranches: targetSnapshotBranches,
21032123
}
21042124
b, _ := json.MarshalIndent(reqs, "", " ")
21052125
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)