From 5207da454689778276f3da90e0c102978f2a0327 Mon Sep 17 00:00:00 2001 From: Seiya Kokushi Date: Wed, 17 May 2023 18:59:17 +0900 Subject: [PATCH] feat(manager/asdf): support channel suffix on asdf-flutter (#22131) Co-authored-by: Michael Kriese --- lib/modules/manager/asdf/extract.spec.ts | 25 ++++++++++++++++++- .../manager/asdf/upgradeable-tooling.ts | 7 ++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/lib/modules/manager/asdf/extract.spec.ts b/lib/modules/manager/asdf/extract.spec.ts index 931981f69c5491..cb4e6b963383d2 100644 --- a/lib/modules/manager/asdf/extract.spec.ts +++ b/lib/modules/manager/asdf/extract.spec.ts @@ -60,7 +60,7 @@ ecspresso 2.1.0 elixir 1.14.1 elm 0.19.1 erlang 25.1.2 -flutter 3.7.6 +flutter 3.7.6-stable flux2 0.41.2 gauche 0.9.12 gohugo extended_0.104.3 @@ -516,6 +516,29 @@ dummy 1.2.3 }); }); + it('can handle flutter version channel', () => { + const withChannel = extractPackageFile('flutter 3.10.0-stable'); + expect(withChannel).toEqual({ + deps: [ + { + currentValue: '3.10.0', + datasource: 'flutter-version', + depName: 'flutter', + }, + ], + }); + const withoutChannel = extractPackageFile('flutter 3.10.0'); + expect(withoutChannel).toEqual({ + deps: [ + { + currentValue: '3.10.0', + datasource: 'flutter-version', + depName: 'flutter', + }, + ], + }); + }); + it('can handle java jre / jdk', () => { const jdkRes = extractPackageFile('java adoptopenjdk-16.0.0+36'); expect(jdkRes).toEqual({ diff --git a/lib/modules/manager/asdf/upgradeable-tooling.ts b/lib/modules/manager/asdf/upgradeable-tooling.ts index 3aefeb62c8dc30..a80a884030295d 100644 --- a/lib/modules/manager/asdf/upgradeable-tooling.ts +++ b/lib/modules/manager/asdf/upgradeable-tooling.ts @@ -1,3 +1,4 @@ +import { regEx } from '../../../util/regex'; import { DartVersionDatasource } from '../../datasource/dart-version'; import { DockerDatasource } from '../../datasource/docker'; import { FlutterVersionDatasource } from '../../datasource/flutter-version'; @@ -158,9 +159,11 @@ export const upgradeableTooling: Record = { }, flutter: { asdfPluginUrl: 'https://github.com/oae/asdf-flutter', - config: { + config: (version) => ({ datasource: FlutterVersionDatasource.id, - }, + // asdf-flutter plugin supports channel on version suffix. + currentValue: version.replace(regEx(/-(stable|beta|dev)$/), ''), + }), }, flux2: { asdfPluginUrl: 'https://github.com/tablexi/asdf-flux2.git',