diff --git a/master-nonlatent/master.cfg b/master-nonlatent/master.cfg index 858df60a6..9b1302b18 100644 --- a/master-nonlatent/master.cfg +++ b/master-nonlatent/master.cfg @@ -283,6 +283,9 @@ f_windows.addStep( ) ## f_windows_msi +WIN_MSI_VCPKG_ROOT = "C:\\vcpkg" +WIN_MSI_VAULT_ROOT = "C:\\vault" + f_windows_msi = util.BuildFactory() f_windows_msi.addStep( steps.ShellCommand( @@ -351,6 +354,23 @@ f_windows_msi.addStep( ], ) ) + +f_windows_msi.addStep( + steps.ShellCommand( + name="Setup vcpkg in manifest mode", + env={ + "VCPKG_ROOT": WIN_MSI_VCPKG_ROOT, + "PATH": [WIN_MSI_VCPKG_ROOT, "${PATH}"], + }, + command=[ + "dojob", + '"', + util.Interpolate("vcpkg new --application && vcpkg add port curl"), + '"', + ], + ) +) + f_windows_msi.addStep( steps.Compile( name="cmake", @@ -359,9 +379,21 @@ f_windows_msi.addStep( "dojob", '"', util.Interpolate( - '"C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\Common7\\Tools\\VsDevCmd.bat" -arch=%(kw:arch)s && cmake . -G "Visual Studio 17 2022" -A %(kw:arch_cmake)s -DBUILD_CONFIG=mysql_release -DWITH_THIRD_PARTY=HeidiSQL -DWITH_EMBEDDED_SERVER=0 -DWITH_SSL=bundled -DSIGNCODE=OFF -DWITH_UNIT_TESTS=0 -DMYSQL_MAINTAINER_MODE=ERR', + '"C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\Common7\\Tools\\VsDevCmd.bat" ' + '-arch=%(kw:arch)s && cmake . -G "Visual Studio 17 2022" ' + "-A %(kw:arch_cmake)s " + '-DCMAKE_TOOLCHAIN_FILE="%(kw:vcpkg_path)s/scripts/buildsystems/vcpkg.cmake" ' + "-DBUILD_CONFIG=mysql_release " + "-DWITH_THIRD_PARTY=HeidiSQL " + "-DWITH_EMBEDDED_SERVER=0 " + "-DWITH_SSL=bundled " + "-DWITH_ZLIB=bundled " + "-DSIGNCODE=OFF " + "-DWITH_UNIT_TESTS=0 " + "-DMYSQL_MAINTAINER_MODE=ERR", arch=util.Property("arch", default="x64"), arch_cmake=util.Property("arch_cmake", default="x64"), + vcpkg_path=WIN_MSI_VCPKG_ROOT, ), '"', ], @@ -451,6 +483,45 @@ for typ in windows_msi_tests: create_scripts=windows_msi_tests[typ].get("create_scripts", False), ) +f_windows_msi.addStep( + steps.ShellCommand( + name="Kill and restart HashiCorp Vault", + command=[ + "dojob", + '"', + util.Interpolate( + ( + f"powershell.exe -ExecutionPolicy Bypass -File {WIN_MSI_VAULT_ROOT}\\start-vault.ps1" + ) + ), + '"', + ], + doStepIf=lambda step: "10.6" not in str(step.getProperty("master_branch")), + ) +) + +f_windows_msi.addStep( + steps.ShellCommand( + name="MTR - HashiCorp Vault", + env={ + "VAULT_ADDR": "http://127.0.0.1:8200", + "VAULT_TOKEN": "MTR", + "PATH": [WIN_MSI_VAULT_ROOT, "${PATH}"], + }, + command=[ + "dojob", + '"', + util.Interpolate( + ( + "vault status && cd mysql-test && perl mysql-test-run.pl --mem --suite=vault --big --parallel=1" + ) + ), + '"', + ], + doStepIf=lambda step: "10.6" not in str(step.getProperty("master_branch")), + ) +) + f_windows_msi.addStep(windows_save_logs_step()) # create package and upload to master diff --git a/scripts/windows/start-vault.ps1 b/scripts/windows/start-vault.ps1 new file mode 100644 index 000000000..ba257d295 --- /dev/null +++ b/scripts/windows/start-vault.ps1 @@ -0,0 +1,27 @@ +# Deploy in WIN_MSI_VAULT_ROOT +try { + # Kill any existing Vault processes + Get-Process vault -ErrorAction SilentlyContinue | ForEach-Object { + Stop-Process -Id $_.Id -Force + Write-Host "Killed Vault process $($_.Id)" + } + + # Set environment variables for dev mode + $env:VAULT_DEV_ROOT_TOKEN_ID = "MTR" + $env:VAULT_ADDR = "http://127.0.0.1:8200" + + + Start-Sleep -Seconds 1 # For old Vault process to exit + + # Start Vault in detached mode using Start-Process + Start-Process -FilePath "C:\vault\vault.exe" ` + -ArgumentList "server -dev" ` + -WindowStyle Hidden ` + + Write-Host "Vault started in dev mode. PID: $((Get-Process vault).Id)" + exit 0 +} +catch { + Write-Host "Failed to start Vault: $_" + exit 1 +} \ No newline at end of file