Details
-
Task
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
Scope
This task covers the changes required to make the amd64-windows and amd64-windows-packages compatible with
winx64-debug and winx64-packages from https://buildbot.mariadb.net.
Details
Debug builder
The builders configure step is the same between old and new:
cmake src -G "Visual Studio 17 2022" -A x64 -DPLUGIN_ROCKSDB=NO -DMYSQL_MAINTAINER_MODE=ERR -DWITH_DBUG_TRACE=OFF -Wno-dev
- The build step matches.
cmake --build . --verbose --config RelWithDebInfo -- -m
- The tests run are invoked from buildbot_suites.bat, found under mysql-test/collections/
- There is also a separate run for connect suite.
Packages builder
- The cmake line is shared between old and new builders:
cmake . -G "Visual Studio 17 2022" -A x64 -DBUILD_CONFIG=mysql_release -DWITH_THIRD_PARTY=HeidiSQL -DWITH_EMBEDDED_SERVER=0 -DSIGNCODE=ON -DSIGNTOOL_PARAMETERS="/fd;SHA256;/a;/t;http://timestamp.globalsign.com/?signature=sha2" -DWITH_UNIT_TESTS=0 -DMYSQL_MAINTAINER_MODE=ERR
- The package compile step "matches". The new buildbot assumes there is a CPackZIPConfig.cmake, which is true for all MariaDB supported versions.
Zip packagingcmake --build . --config RelWithDebInfo --target win_package
MSI packaging
cmake --build . --config RelWithDebInfo --target MSI
- Upload step: Packages are uploaded to ci.mariadb.org, can later be part of the package signing process.
- MTR tests: are run the same, buildbot_suites.bat and connect suite.
- There is currently no install test in the new buildbot. These should be covered.
Requirements:
1. Update windows builder to the latest supported Windows Server version.
2. Update Visual studio and the compiler to the latest version currently available.
3. Implement install tests for MSI packages.
dojob ^"^(rename mariadb*.msi mariadb-64.msi ^&^& ^(start /b /wait msiexec /i mariadb-64.msi PORT=3364 INSTALLDIR=\^"C:\Program Files\MariaDB\^" SERVICENAME=MariaDB-64 /qn /l*v msi_install.txt^)^) ^|^| ^(echo ERROR: Installation failed ^&^& type msi_install.txt ^&^& exit 1^)^" |
Check the service is running:
dojob ^"dir C:\\\^"Program Files\^"\MariaDB ^&^& ^(echo Check that the built and installed mysqld.exe are identical ^&^& ^(diff sql\RelWithDebInfo\mysqld.exe \^"C:\Program Files\MariaDB\bin\mysqld.exe\^" ^|^| ^(stat sql\RelWithDebInfo\mysqld.exe ^&^& stat \^"C:\Program Files\MariaDB\bin\mysqld.exe\^" ^&^& sql\RelWithDebInfo\mysqld.exe --version ^&^& C:\\\^"Program Files\^"\MariaDB\bin\mysqld.exe --version ^&^& exit 1^)^)^) ^&^& ^(echo Check that the server is up and running on the right port ^&^& C:\\\^"Program Files\^"\MariaDB\bin\mysql -uroot --port=3364 -e \^"select ^@^@version, ^@^@version_comment; show status like 'Uptime'; select 'Stat' t, variable_name name, variable_value val from information_schema.global_status where variable_name like '%%have%%' union select 'Vars' t, variable_name name, variable_value val from information_schema.global_variables where variable_name like '%%have%%' order by t, name\^"^)^" |
Uninstall the msi package:
dojob ^"start /b /wait msiexec /i mariadb-64.msi REMOVE=ALL /qn /l*v msi_uninstall.txt ^|^| type msi_uninstall.txt ^&^& exit 1^" |
serg The winx64-debug builder in old buildbot uses a weird way of fetching the source code. It uses
instead of unpacking a tarball like any other builder.
Is this a requirement? I only see potential issues with this approach, and no clear benefits. For example the build is not reproducible if the commit hash no longer exists on GitHub. Why was it done like this?