From 050efaf52a756ad291fd5e0d5923d07e913bc34c Mon Sep 17 00:00:00 2001 From: Nikolay Frolov <90333448+nikolai-frolov@users.noreply.github.com> Date: Fri, 3 Dec 2021 19:49:55 +0300 Subject: [PATCH] [Windows] Improve MySQL install (#4646) --- .../win/scripts/Installers/Install-MysqlCli.ps1 | 15 +++++++++++---- images/win/scripts/Tests/Databases.Tests.ps1 | 4 ++-- images/win/toolsets/toolset-2016.json | 3 +-- images/win/toolsets/toolset-2019.json | 3 +-- images/win/toolsets/toolset-2022.json | 3 +-- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/images/win/scripts/Installers/Install-MysqlCli.ps1 b/images/win/scripts/Installers/Install-MysqlCli.ps1 index 3feecfb0..693883a7 100644 --- a/images/win/scripts/Installers/Install-MysqlCli.ps1 +++ b/images/win/scripts/Installers/Install-MysqlCli.ps1 @@ -11,9 +11,16 @@ $ArgumentList = ("/install", "/quiet", "/norestart") Install-Binary -Url $InstallerURI -Name $InstallerName -ArgumentList $ArgumentList ## Downloading mysql -$MysqlMajorVersion = (Get-ToolsetContent).mysql.major_version -$MysqlFullVersion = (Get-ToolsetContent).mysql.full_version -$MysqlVersionUrl = "https://dev.mysql.com/get/Downloads/MySQL-${MysqlMajorVersion}/mysql-${MysqlFullVersion}-winx64.zip" +[version]$MysqlVersion = (Get-ToolsetContent).mysql.version +$MysqlVersionMajorMinor = $MysqlVersion.ToString(2) + +if ($MysqlVersion.Build -lt 0) { + $MysqlVersion = (Invoke-RestMethod -Uri "https://dev.mysql.com/downloads/mysql/${MysqlVersionMajorMinor}.html" | + Select-String -Pattern "${MysqlVersionMajorMinor}\.\d+").Matches.Value +} + +$MysqlVersionFull = $MysqlVersion.ToString() +$MysqlVersionUrl = "https://dev.mysql.com/get/Downloads/MySQL-${MysqlVersionMajorMinor}/mysql-${MysqlVersionFull}-winx64.zip" $MysqlArchPath = Start-DownloadWithRetry -Url $MysqlVersionUrl -Name "mysql.zip" @@ -23,7 +30,7 @@ Extract-7Zip -Path $MysqlArchPath -DestinationPath "C:\" # Rename mysql-version to mysql folder $MysqlPath = "C:\mysql" Invoke-SBWithRetry -Command { - Rename-Item -Path "C:\mysql-${MysqlFullVersion}-winx64" -NewName $MysqlPath -ErrorAction Stop + Rename-Item -Path "C:\mysql-${MysqlVersionFull}-winx64" -NewName $MysqlPath -ErrorAction Stop } # Adding mysql in system environment path diff --git a/images/win/scripts/Tests/Databases.Tests.ps1 b/images/win/scripts/Tests/Databases.Tests.ps1 index ac6b3106..1e0c88a3 100644 --- a/images/win/scripts/Tests/Databases.Tests.ps1 +++ b/images/win/scripts/Tests/Databases.Tests.ps1 @@ -65,7 +65,7 @@ Describe "PostgreSQL" { Describe "MySQL" { It "MySQL CLI" { - $MysqlMajorVersion = (Get-ToolsetContent).mysql.major_version - mysql -V | Should -BeLike "*${MysqlMajorVersion}*" + $MysqlVersion = (Get-ToolsetContent).mysql.version + mysql -V | Should -BeLike "*${MysqlVersion}*" } } diff --git a/images/win/toolsets/toolset-2016.json b/images/win/toolsets/toolset-2016.json index 60b6e8a0..22bbd544 100644 --- a/images/win/toolsets/toolset-2016.json +++ b/images/win/toolsets/toolset-2016.json @@ -422,8 +422,7 @@ "default": "16" }, "mysql": { - "major_version": "5.7", - "full_version": "5.7.36" + "version": "5.7" }, "mongodb": { "version": "5.0" diff --git a/images/win/toolsets/toolset-2019.json b/images/win/toolsets/toolset-2019.json index f7ad0840..1a8fb546 100644 --- a/images/win/toolsets/toolset-2019.json +++ b/images/win/toolsets/toolset-2019.json @@ -454,8 +454,7 @@ "default": "16" }, "mysql": { - "major_version": "5.7", - "full_version": "5.7.36" + "version": "5.7" }, "mongodb": { "version": "5.0" diff --git a/images/win/toolsets/toolset-2022.json b/images/win/toolsets/toolset-2022.json index 5b06743d..c901aaec 100644 --- a/images/win/toolsets/toolset-2022.json +++ b/images/win/toolsets/toolset-2022.json @@ -307,8 +307,7 @@ "default": "16" }, "mysql": { - "major_version": "8.0", - "full_version": "8.0.26" + "version": "8.0.26" }, "mongodb": { "version": "5.0"