@ -7838,7 +7838,9 @@ function run() {
}
}
if ( version ) {
const dotnetInstaller = new installer . DotnetCoreInstaller ( version ) ;
const includePrerelease = ( core . getInput ( 'include-prerelease' ) || 'false' ) . toLowerCase ( ) ===
'true' ;
const dotnetInstaller = new installer . DotnetCoreInstaller ( version , includePrerelease ) ;
yield dotnetInstaller . installDotnet ( ) ;
}
const sourceUrl = core . getInput ( 'source-url' ) ;
@ -16885,7 +16887,6 @@ class DotNetVersionInfo {
this . isExactVersionSet = true ;
return ;
}
//Note: No support for previews when using generic
const parts = version . split ( '.' ) ;
if ( parts . length < 2 || parts . length > 3 )
this . throwInvalidVersionFormat ( ) ;
@ -16927,8 +16928,9 @@ class DotNetVersionInfo {
}
exports . DotNetVersionInfo = DotNetVersionInfo ;
class DotnetCoreInstaller {
constructor ( version ) {
constructor ( version , includePrerelease = false ) {
this . version = version ;
this . includePrerelease = includePrerelease ;
}
installDotnet ( ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
@ -17035,14 +17037,22 @@ class DotnetCoreInstaller {
const releasesResult = releasesResponse . result || { } ;
let releasesInfo = releasesResult [ 'releases' ] ;
releasesInfo = releasesInfo . filter ( ( releaseInfo ) => {
return ( semver . satisfies ( releaseInfo [ 'sdk' ] [ 'version' ] , versionInfo . version ( ) ) ||
semver . satisfies ( releaseInfo [ 'sdk' ] [ 'version-display' ] , versionInfo . version ( ) ) ) ;
return ( semver . satisfies ( releaseInfo [ 'sdk' ] [ 'version' ] , versionInfo . version ( ) , {
includePrerelease : this . includePrerelease
} ) ||
semver . satisfies ( releaseInfo [ 'sdk' ] [ 'version-display' ] , versionInfo . version ( ) , {
includePrerelease : this . includePrerelease
} ) ) ;
} ) ;
// Exclude versions that are newer than the latest if using not exact
let latestSdk = releasesResult [ 'latest-sdk' ] ;
releasesInfo = releasesInfo . filter ( ( releaseInfo ) => semver . lte ( releaseInfo [ 'sdk' ] [ 'version' ] , latestSdk ) ) ;
releasesInfo = releasesInfo . filter ( ( releaseInfo ) => semver . lte ( releaseInfo [ 'sdk' ] [ 'version' ] , latestSdk , {
includePrerelease : this . includePrerelease
} ) ) ;
// Sort for latest version
releasesInfo = releasesInfo . sort ( ( a , b ) => semver . rcompare ( a [ 'sdk' ] [ 'version' ] , b [ 'sdk' ] [ 'version' ] ) ) ;
releasesInfo = releasesInfo . sort ( ( a , b ) => semver . rcompare ( a [ 'sdk' ] [ 'version' ] , b [ 'sdk' ] [ 'version' ] , {
includePrerelease : this . includePrerelease
} ) ) ;
if ( releasesInfo . length == 0 ) {
throw new Error ( ` Could not find dotnet core version. Please ensure that specified version ${ versionInfo . inputVersion } is valid. ` ) ;
}