Skip to content

Commit c975465

Browse files
committedNov 6, 2024
Initial version of a Windows config for Github Actions
1 parent fa07c9a commit c975465

File tree

3 files changed

+51
-1
lines changed

3 files changed

+51
-1
lines changed
 

‎.github/workflows/test.yml

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
on: [push]
2+
name: Test
3+
jobs:
4+
test:
5+
name: Build and test driver on windows-2022
6+
runs-on: windows-2019
7+
env:
8+
CASS_DRIVER_LIBEV_INCLUDES: C:/vcpkg/packages/libev_x64-windows/include/libev
9+
CASS_DRIVER_LIBEV_LIBS: C:/vcpkg/packages/libev_x64-windows/lib
10+
LIBUV_ROOT_DIR: C:/vcpkg/packages/libuv_x64-windows
11+
ZLIB_ROOT_DIR: C:/vcpkg/packages/zlib_x64-windows-static
12+
KERBEROS_ROOT_DIR: C:/vcpkg/packages/krb5_x64-windows
13+
OPENSSL_ROOT_DIR: C:/vcpkg/packages/openssl_x64-windows
14+
steps:
15+
- uses: actions/checkout@v4
16+
- uses: ilammy/msvc-dev-cmd@v1
17+
- name: Install dependencies
18+
run: vcpkg install libuv zlib:x64-windows-static krb5 openssl
19+
- name: Setup env vars
20+
run: |
21+
echo "ZLIB_LIB_DIR=${{ env.ZLIB_ROOT_DIR }}/lib" >> $env:GITHUB_ENV
22+
echo "LIBUV_BIN_DIR=${{ env.LIBUV_ROOT_DIR }}/bin" >> $env:GITHUB_ENV
23+
echo "KERBEROS_BIN_DIR=${{ env.KERBEROS_ROOT_DIR }}/bin" >> $env:GITHUB_ENV
24+
echo "OPENSSL_BIN_DIR=${{ env.OPENSSL_ROOT_DIR }}/bin" >> $env:GITHUB_ENV
25+
echo "OPENSSL_APPLINK_DIR=${{ env.OPENSSL_ROOT_DIR }}/include/openssl" >> $env:GITHUB_ENV
26+
- name: Set PATH to find vcpkg dependencies
27+
run: |
28+
echo "PATH=${{ env.PATH }};${{ env.LIBUV_BIN_DIR }};${{ env.KERBEROS_BIN_DIR }};${{ env.OPENSSL_BIN_DIR }}" >> $env:GITHUB_ENV
29+
- name: Fix name of static zlib dir
30+
run: ln -s ${{ env.ZLIB_LIB_DIR }}/zlib.lib ${{ env.ZLIB_LIB_DIR }}/zlibstatic.lib
31+
- name: Build and run tests
32+
run: |
33+
mkdir build
34+
cd build
35+
cmake -G "NMake Makefiles" -DCASS_BUILD_UNIT_TESTS=On -DCASS_OPENSSL_APPLINK=${{ env.OPENSSL_APPLINK_DIR }}/applink.c ..
36+
nmake
37+
ls .
38+
ldd ./cassandra-unit-tests.exe
39+
./cassandra-unit-tests.exe --gtest_output=xml:gtest-results.xml
40+
ls .
41+
- name: Publish test results
42+
uses: mikepenz/action-junit-report@v4
43+
if: success() || failure()
44+
with:
45+
report_paths: build\gtest-results.xml

‎src/gssapi/dse_auth_gssapi.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
#include <string.h>
2323

2424
#include <gssapi/gssapi.h>
25-
#include <gssapi/gssapi_generic.h>
2625
#include <gssapi/gssapi_krb5.h>
2726

2827
#define DSE_AUTHENTICATOR "com.datastax.bdp.cassandra.auth.DseAuthenticator"

‎tests/src/unit/CMakeLists.txt

+6
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ source_group("Header Files" FILES ${UNIT_TESTS_INCLUDE_FILES})
2121
source_group("Source Files" FILES ${UNIT_TESTS_SOURCE_FILES})
2222
source_group("Source Files\\tests" FILES ${UNIT_TESTS_TESTS_SOURCE_FILES})
2323

24+
if(CASS_USE_OPENSSL AND WIN32 AND (NOT CASS_OPENSSL_APPLINK STREQUAL ""))
25+
# Allow user to specify the location of applink.c. Some Windows builds require this as an
26+
# interface into OpenSSL BIO ops. See https://docs.openssl.org/1.1.1/man3/OPENSSL_Applink/
27+
list(APPEND UNIT_TESTS_SOURCE_FILES "${CASS_OPENSSL_APPLINK}")
28+
endif()
29+
2430
add_executable(cassandra-unit-tests
2531
${MINIZIP_SOURCE_FILES}
2632
${UNIT_TESTS_SOURCE_FILES}

0 commit comments

Comments
 (0)