Windows GitHub Action (#231)

* Migrate the Windows Msys2 build from Appveyor to GitHub Actions
* Fix build with newer versions of Msys2 (fix `vasprintf` conflict)
* Enable SQL tests on the Cygwin build on Appveyor
* Fix an error message about Bison not being available when in fact Flex was not available
* Don't fail fast with Mac and Linux GitHub Actions
This commit is contained in:
Evan Miller 2020-12-23 09:34:21 -05:00 committed by GitHub
parent 76c2ada332
commit 2becb08714
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 35 deletions

View File

@ -4,6 +4,7 @@ jobs:
linux:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
compiler: [ clang, gcc, gcc-8, gcc-9, gcc-10 ]
glib: [ enable-glib, disable-glib ]
@ -34,6 +35,7 @@ jobs:
macos:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
compiler: [ clang, gcc ]
glib: [ enable-glib, disable-glib ]
@ -87,3 +89,21 @@ jobs:
run: make
- name: ODBC tests
run: env MDBPATH=test/data ./src/odbc/unittest
windows:
runs-on: windows-latest
env:
MSYSTEM: MINGW64
steps:
- uses: actions/checkout@v2
- name: Check out test data
run: git clone https://github.com/mdbtools/mdbtestdata.git test
- name: Autoconf
run: C:\msys64\usr\bin\bash -c -l 'cd "$GITHUB_WORKSPACE" && autoreconf -i -f'
- name: Configure
run: C:\msys64\usr\bin\bash -c -l 'cd "$GITHUB_WORKSPACE" && ./configure'
- name: Make
run: C:\msys64\usr\bin\bash -c -l 'cd "$GITHUB_WORKSPACE" && make'
- name: Test
run: C:\msys64\usr\bin\bash -c -l 'cd "$GITHUB_WORKSPACE" && ./test_script.sh'
- name: SQL Test
run: C:\msys64\usr\bin\bash -c -l 'cd "$GITHUB_WORKSPACE" && ./test_sql.sh'

View File

@ -6,7 +6,6 @@ platform: x64
environment:
matrix:
- TOOLCHAIN: "msys2"
- TOOLCHAIN: "cygwin"
branches:
@ -19,33 +18,12 @@ clone_folder: c:\projects\mdbtools
skip_tags: true
build_script:
- ps: |
if ($env:TOOLCHAIN -eq "msys2")
{
$env:MSYSTEM="MINGW64"
C:\msys64\usr\bin\bash -l -c "cd /c/projects/mdbtools && git clone https://github.com/mdbtools/mdbtestdata.git test"
C:\msys64\usr\bin\bash -l -c "cd /c/projects/mdbtools && autoreconf -i -f"
C:\msys64\usr\bin\bash -l -c "cd /c/projects/mdbtools && ./configure --disable-man --disable-silent-rules"
C:\msys64\usr\bin\bash -l -c "cd /c/projects/mdbtools && make"
}
else
{
C:\cygwin64\setup-x86_64.exe -qP bison flex libiodbc-devel
C:\cygwin64\bin\sh -lc "cd /cygdrive/c/projects/mdbtools && git clone https://github.com/mdbtools/mdbtestdata.git test"
C:\cygwin64\bin\sh -lc "cd /cygdrive/c/projects/mdbtools && autoreconf -i -f"
C:\cygwin64\bin\sh -lc "cd /cygdrive/c/projects/mdbtools && ./configure --disable-man --disable-silent-rules"
C:\cygwin64\bin\sh -lc "cd /cygdrive/c/projects/mdbtools && make"
}
- C:\cygwin64\setup-x86_64.exe -q -P bison -P flex -P libiconv-devel
- C:\cygwin64\bin\sh -lc "cd /cygdrive/c/projects/mdbtools && git clone https://github.com/mdbtools/mdbtestdata.git test"
- C:\cygwin64\bin\sh -lc "cd /cygdrive/c/projects/mdbtools && autoreconf -i -f"
- C:\cygwin64\bin\sh -lc "cd /cygdrive/c/projects/mdbtools && ./configure --disable-man --disable-silent-rules"
- C:\cygwin64\bin\sh -lc "cd /cygdrive/c/projects/mdbtools && make"
test_script:
- ps: |
if ($env:TOOLCHAIN -eq "msys2")
{
$env:MSYSTEM="MINGW64"
C:\msys64\usr\bin\bash -l -c "cd /c/projects/mdbtools && ./test_script.sh"
C:\msys64\usr\bin\bash -l -c "cd /c/projects/mdbtools && ./test_sql.sh"
}
else
{
C:\cygwin64\bin\sh -lc "cd /cygdrive/c/projects/mdbtools && ./test_script.sh"
}
- C:\cygwin64\bin\sh -lc "cd /cygdrive/c/projects/mdbtools && ./test_script.sh"
- C:\cygwin64\bin\sh -lc "cd /cygdrive/c/projects/mdbtools && ./test_sql.sh"

View File

@ -36,7 +36,7 @@ AC_CHECK_DECLS([program_invocation_short_name], [], [], [[
dnl Checks for library functions.
VL_LIB_READLINE
AC_CHECK_FUNCS(strptime fmemopen gmtime_r wcstombs_l)
AC_CHECK_FUNCS(strptime fmemopen gmtime_r wcstombs_l vasprintf vasnprintf)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
@ -73,14 +73,13 @@ if $YACC -V | grep "bison.* 3[.]" >/dev/null 2>&1; then
YFLAGS="$YFLAGS -Wno-yacc"
fi
else
sql=false
AC_MSG_WARN([Bison 3.0+ is not available: SQL disabled.])
sql=false
fi
if test "x$sql" = "xtrue"; then
CFLAGS="$CFLAGS -DSQL"
OPTDIRS="$OPTDIRS sql"
else
AC_MSG_WARN([Bison 3.0+ is not available: SQL disabled.])
fi
AM_CONDITIONAL(SQL, test x$sql = xtrue)

View File

@ -106,7 +106,7 @@ char *g_strconcat(const char *first, ...) {
return ret;
}
#if defined _WIN32
#if defined _WIN32 && !defined(HAVE_VASPRINTF) && !defined(HAVE_VASNPRINTF)
int vasprintf(char **ret, const char *format, va_list ap) {
int len;
int retval;
@ -134,7 +134,7 @@ char *g_strdup_printf(const char *format, ...) {
va_list argp;
va_start(argp, format);
#ifdef __CYGWIN__
#ifdef HAVE_VASNPRINTF
size_t len = 0;
ret = vasnprintf(ret, &len, format, argp);
#else