Update to have debug and release builds

This commit is contained in:
David Markowitz 2024-10-27 11:11:56 -07:00
parent e0b54645dc
commit 0509aaf855
4 changed files with 251 additions and 171 deletions

View File

@ -13,7 +13,8 @@ jobs:
continue-on-error: true continue-on-error: true
strategy: strategy:
matrix: matrix:
os: [ windows-2022, ubuntu-22.04, macos-13, windows-2022-debug ] os: [ windows-2022, ubuntu-22.04, macos-13 ]
cfg: [ debug, release ]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@ -33,9 +34,9 @@ jobs:
- name: cmake - name: cmake
uses: lukka/run-cmake@v10 uses: lukka/run-cmake@v10
with: with:
configurePreset: "ci-${{matrix.os}}" configurePreset: "ci-${{matrix.os}}-${{matrix.cfg}}"
buildPreset: "ci-${{matrix.os}}" buildPreset: "ci-${{matrix.os}}-${{matrix.cfg}}"
testPreset: "ci-${{matrix.os}}" testPreset: "ci-${{matrix.os}}-${{matrix.cfg}}"
- name: artifacts - name: artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:

View File

@ -14,47 +14,80 @@
"generator": "Unix Makefiles" "generator": "Unix Makefiles"
}, },
{ {
"name": "ci-ubuntu-22.04", "name": "ci-debug",
"displayName": "CI configure step for Debug",
"inherits": "default",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "ci-release",
"displayName": "CI configure step for Release",
"inherits": "default",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
},
{
"name": "ci-ubuntu-22.04-release",
"displayName": "CI configure step for Ubuntu", "displayName": "CI configure step for Ubuntu",
"description": "Same as default, Used in GitHub actions workflow", "description": "Same as default, Used in GitHub actions workflow",
"inherits": "default" "inherits": "ci-release"
}, },
{ {
"name": "ci-macos-13", "name": "ci-ubuntu-22.04-debug",
"displayName": "CI configure step for Ubuntu",
"description": "Same as default, Used in GitHub actions workflow",
"inherits": "ci-debug"
},
{
"name": "ci-macos-13-release",
"displayName": "CI configure step for MacOS", "displayName": "CI configure step for MacOS",
"description": "Same as default, Used in GitHub actions workflow", "description": "Same as default, Used in GitHub actions workflow",
"inherits": "default" "inherits": "ci-release"
}, },
{ {
"name": "ci-windows-2022", "name": "ci-macos-13-debug",
"displayName": "CI configure step for MacOS",
"description": "Same as default, Used in GitHub actions workflow",
"inherits": "ci-debug"
},
{
"name": "ci-windows-2022-release",
"displayName": "CI configure step for Windows", "displayName": "CI configure step for Windows",
"description": "Set architecture to 64-bit (b/c RakNet)", "description": "Set architecture to 64-bit (b/c RakNet)",
"inherits": "default", "inherits": "ci-release",
"generator": "Visual Studio 17 2022", "generator": "Visual Studio 17 2022",
"architecture": { "architecture": {
"value": "x64" "value": "x64"
},
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
} }
}, },
{ {
"name": "ci-windows-2022-debug", "name": "ci-windows-2022-debug",
"displayName": "CI configure step for Windows", "displayName": "CI configure step for Windows",
"description": "Set architecture to 64-bit (b/c RakNet)", "description": "Set architecture to 64-bit (b/c RakNet)",
"inherits": "default", "inherits": "ci-debug",
"generator": "Visual Studio 17 2022", "generator": "Visual Studio 17 2022",
"architecture": { "architecture": {
"value": "x64" "value": "x64"
},
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
} }
}, },
{ {
"name": "windows-default", "name": "windows-default-release",
"inherits": "ci-windows-2022", "inherits": "ci-windows-2022-release",
"displayName": "Windows only Configure Settings", "displayName": "Windows only Configure Settings (Release)",
"description": "Sets build and install directories",
"generator": "Ninja",
"architecture": {
"value": "x64",
"strategy": "external"
}
},
{
"name": "windows-default-debug",
"inherits": "ci-windows-2022-debug",
"displayName": "Windows only Configure Settings (Debug)",
"description": "Sets build and install directories", "description": "Sets build and install directories",
"generator": "Ninja", "generator": "Ninja",
"architecture": { "architecture": {
@ -71,43 +104,58 @@
"description": "Default Build", "description": "Default Build",
"jobs": 2 "jobs": 2
}, },
{
"name": "ci-windows-2022",
"configurePreset": "ci-windows-2022",
"displayName": "Windows CI Build",
"description": "This preset is used by the CI build on windows",
"configuration": "RelWithDebInfo",
"jobs": 2
},
{ {
"name": "ci-windows-2022-debug", "name": "ci-windows-2022-debug",
"configurePreset": "ci-windows-2022-debug", "configurePreset": "ci-windows-2022-debug",
"displayName": "Windows CI Build", "displayName": "Windows CI Build",
"description": "This preset is used by the CI build on windows for debug", "description": "This preset is used by the CI build on windows",
"configuration": "Debug", "configuration": "RelWithDebInfo",
"jobs": 2 "inherits": "default"
}, },
{ {
"name": "ci-ubuntu-22.04", "name": "ci-windows-2022-release",
"configurePreset": "ci-ubuntu-22.04", "configurePreset": "ci-windows-2022-release",
"displayName": "Windows CI Build",
"description": "This preset is used by the CI build on windows",
"configuration": "RelWithDebInfo",
"inherits": "default"
},
{
"name": "ci-ubuntu-22.04-debug",
"configurePreset": "ci-ubuntu-22.04-debug",
"displayName": "Linux CI Build", "displayName": "Linux CI Build",
"description": "This preset is used by the CI build on linux", "description": "This preset is used by the CI build on linux",
"jobs": 2 "inherits": "default"
}, },
{ {
"name": "ci-macos-13", "name": "ci-ubuntu-22.04-release",
"configurePreset": "ci-macos-13", "configurePreset": "ci-ubuntu-22.04-release",
"displayName": "Linux CI Build",
"description": "This preset is used by the CI build on linux",
"inherits": "default"
},
{
"name": "ci-macos-13-debug",
"configurePreset": "ci-macos-13-debug",
"displayName": "MacOS CI Build", "displayName": "MacOS CI Build",
"description": "This preset is used by the CI build on MacOS", "description": "This preset is used by the CI build on MacOS",
"jobs": 2 "inherits": "default"
},
{
"name": "ci-macos-13-release",
"configurePreset": "ci-macos-13-release",
"displayName": "MacOS CI Build",
"description": "This preset is used by the CI build on MacOS",
"inherits": "default"
} }
], ],
"testPresets": [ "testPresets": [
{ {
"name": "ci-ubuntu-22.04", "name": "ci-ubuntu-22.04-debug",
"configurePreset": "ci-ubuntu-22.04", "configurePreset": "ci-ubuntu-22.04-debug",
"displayName": "CI Tests on Linux", "displayName": "CI Tests on Linux",
"description": "Runs all tests on a linux configuration", "description": "Runs all tests on a linux configuration",
"configuration": "Debug",
"execution": { "execution": {
"jobs": 2 "jobs": 2
}, },
@ -116,10 +164,24 @@
} }
}, },
{ {
"name": "ci-macos-13", "name": "ci-ubuntu-22.04-release",
"configurePreset": "ci-macos-13", "configurePreset": "ci-ubuntu-22.04-release",
"displayName": "CI Tests on Linux",
"description": "Runs all tests on a linux configuration",
"configuration": "RelWithDebInfo",
"execution": {
"jobs": 2
},
"output": {
"outputOnFailure": true
}
},
{
"name": "ci-macos-13-debug",
"configurePreset": "ci-macos-13-debug",
"displayName": "CI Tests on MacOS", "displayName": "CI Tests on MacOS",
"description": "Runs all tests on a Mac configuration", "description": "Runs all tests on a Mac configuration",
"configuration": "Debug",
"execution": { "execution": {
"jobs": 2 "jobs": 2
}, },
@ -128,8 +190,21 @@
} }
}, },
{ {
"name": "ci-windows-2022", "name": "ci-macos-13-release",
"configurePreset": "ci-windows-2022", "configurePreset": "ci-macos-13-release",
"displayName": "CI Tests on MacOS",
"description": "Runs all tests on a Mac configuration",
"configuration": "RelWithDebInfo",
"execution": {
"jobs": 2
},
"output": {
"outputOnFailure": true
}
},
{
"name": "ci-windows-2022-release",
"configurePreset": "ci-windows-2022-release",
"displayName": "CI Tests on windows", "displayName": "CI Tests on windows",
"description": "Runs all tests on a windows configuration", "description": "Runs all tests on a windows configuration",
"configuration": "RelWithDebInfo", "configuration": "RelWithDebInfo",

View File

@ -15,8 +15,10 @@ endif()
add_custom_target(conncpp_tests add_custom_target(conncpp_tests
${CMAKE_COMMAND} -E copy $<TARGET_FILE:MariaDB::ConnCpp> ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) ${CMAKE_COMMAND} -E copy $<TARGET_FILE:MariaDB::ConnCpp> ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
if(MSVC)
add_custom_target(zlib_tests add_custom_target(zlib_tests
${CMAKE_COMMAND} -E copy $<TARGET_FILE:zlib> ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) ${CMAKE_COMMAND} -E copy $<TARGET_FILE:ZLIB::ZLIB> ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
endif()
# Add the subdirectories # Add the subdirectories
add_subdirectory(dCommonTests) add_subdirectory(dCommonTests)

View File

@ -17,8 +17,10 @@ list(APPEND DCOMMONTEST_SOURCES ${DENUMS_TESTS})
# Set our executable # Set our executable
add_executable(dCommonTests ${DCOMMONTEST_SOURCES}) add_executable(dCommonTests ${DCOMMONTEST_SOURCES})
add_dependencies(dCommonTests conncpp_tests zlib_tests) add_dependencies(dCommonTests conncpp_tests)
if(MSVC)
add_dependencies(dCommonTests zlib_tests)
endif()
# Apple needs some special linkage for the mariadb connector for tests. # Apple needs some special linkage for the mariadb connector for tests.
if(APPLE) if(APPLE)
add_custom_command(TARGET dCommonTests POST_BUILD add_custom_command(TARGET dCommonTests POST_BUILD