@@ -64,6 +64,38 @@ func main() {
64
64
65
65
stable := fmt .Sprintf ("v%d.%d.%d" , stableVer .Major (), stableVer .Minor (), stableVer .Patch ())
66
66
_ , _ = fmt .Fprintf (os .Stdout , "CODER_STABLE_VERSION=%q\n " , stable )
67
+
68
+ expectedOldStableMinor := mainlineVer .Minor () - 2
69
+ if expectedOldStableMinor < 0 {
70
+ expectedOldStableMinor = 0
71
+ }
72
+ debug ("expected old stable minor: %d\n " , expectedStableMinor )
73
+ oldStableVer := semver .MustParse ("v0.0.0" )
74
+ for _ , rel := range releases {
75
+ debug ("check version %s\n " , rel )
76
+ if rel == "" {
77
+ debug ("ignoring untagged version %s\n " , rel )
78
+ continue
79
+ }
80
+
81
+ ver , err := semver .NewVersion (rel )
82
+ if err != nil {
83
+ debug ("skipping invalid version %s\n " , rel )
84
+ }
85
+
86
+ if ver .Minor () != expectedOldStableMinor {
87
+ debug ("skipping version %s\n " , rel )
88
+ continue
89
+ }
90
+
91
+ if ver .Compare (oldStableVer ) > 0 {
92
+ oldStableVer = ver
93
+ continue
94
+ }
95
+ }
96
+
97
+ oldStable := fmt .Sprintf ("v%d.%d.%d" , oldStableVer .Major (), oldStableVer .Minor (), oldStableVer .Patch ())
98
+ _ , _ = fmt .Fprintf (os .Stdout , "CODER_OLDSTABLE_VERSION=%q\n " , oldStable )
67
99
}
68
100
69
101
type release struct {
0 commit comments