Skip to content

Commit

Permalink
[Fleet] allow alpha, beta, rc suffixes in agent versions (elastic#211787
Browse files Browse the repository at this point in the history
)

## Summary

Closes elastic#211777

Add agent flyout should show `9.0.0-beta1` now:
<img width="2540" alt="image"
src="https://github.com/user-attachments/assets/86259eea-5858-4d06-8989-8fadb3a57f96"
/>

When `9.0.0` comes out, that should show up as latest. For example,
`8.0.0` versions come back in this order:
<img width="462" alt="image"
src="https://github.com/user-attachments/assets/c5204806-3cf7-4c65-bb60-21d176f24f17"
/>



### Checklist

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
  • Loading branch information
juliaElastic authored Feb 19, 2025
1 parent afa67a9 commit ba2caf9
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -229,14 +229,26 @@ describe('getAvailableVersions', () => {
text: jest.fn().mockResolvedValue(
JSON.stringify([
[
{
title: 'Elastic Agent 9.0.0',
version_number: '9.0.0-rc1',
},
{
title: 'Elastic Agent 8.0.0',
version_number: '8.0.0-rc1',
version_number: '8.0.0-rc2',
},
{
title: 'Elastic Agent 8.0.0',
version_number: '8.0.0-beta1',
},
{
title: 'Elastic Agent 8.0.0',
version_number: '8.0.0-alpha1',
},
{
title: 'Elastic Agent 8.0.0',
version_number: '8.0.0-unkown',
},
],
])
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import semverGte from 'semver/functions/gte';
import semverGt from 'semver/functions/gt';
import semverRcompare from 'semver/functions/rcompare';
import semverLt from 'semver/functions/lt';
import semverCoerce from 'semver/functions/coerce';
import semverParse from 'semver/functions/parse';

import { REPO_ROOT } from '@kbn/repo-info';

Expand Down Expand Up @@ -114,8 +114,18 @@ export const getAvailableVersions = async ({
// only want support versions in the final result. We'll also sort by newest version first.
availableVersions = uniq(
[...availableVersions, ...apiVersions]
.map((item: any) => (item.includes('+build') ? item : semverCoerce(item)?.version || ''))
.filter((v: any) => semverGte(v, MINIMUM_SUPPORTED_VERSION))
.filter((v: any) => {
const parsedVersion = semverParse(v);
if (
parsedVersion?.prerelease?.length &&
!parsedVersion.prerelease.some(
(prerelease) => typeof prerelease === 'string' && prerelease.includes('+build')
)
) {
return false;
}
return semverGte(v, MINIMUM_SUPPORTED_VERSION);
})
.sort((a: any, b: any) => (semverGt(a, b) ? -1 : 1))
);

Expand Down

0 comments on commit ba2caf9

Please sign in to comment.