-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI for forward-porting GC3 patches to GC4 #146
Conversation
Codecov ReportAttention: Patch coverage is
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## gc4 #146 +/- ##
======================================
Coverage ? 63.41%
======================================
Files ? 38
Lines ? 63076
Branches ? 17439
======================================
Hits ? 39997
Misses ? 16127
Partials ? 6952 ☔ View full report in Codecov by Sentry. |
The current bunch is fine, if that does pass |
Fails on MinGW (:
This possibly happened also before the first merge commit and is related to the additional header file in trunk which has the compiler defines. The following warnings are older (all new files) - if you could do a (non-merge) commit to fix those this would be useful to reduce the noise:
|
Do you mean the "old" MinGW-32 ? If so, should I add it to the CI to catch such errors ?
Would merging r5244 from GC3 fix that (or make it worse) ? It removes the
I'll do that ASAP. |
yes
that would be useful, but I don't know how easy or not that is; here's the appveyor definition used for "win32 posix ci" (note: as cygwin32 is explicitly not supported by its team any more and doesn't have the relevance as the old MinGW (small download size, working on older Windows versions) I do think about dropping that from CI), for MinGW updating BDB to the most current bnefore the license change and also building most current GMP and PDCursesMod (of course, cached) version: 3.3-dev.{build}-win32-posix
image: Visual Studio 2015
clone_folder: c:\projects\gnucobol
init:
- cmd: "echo Installing libraries and headers\n\nif not exist \"%BUILD_BIN%\\\" mkdir \"%BUILD_BIN%\"\n\n\nrem cache C:\\MinGW\\msys\\1.0\\var\\cache\\mingw-get\\packages - doesn't help\nrem if \"%BUILD_TYPE%\"==\"MSYS\" appveyor DownloadFile \"https://www.arnoldtrembley.com/mingw-var.7z\" -FileName \"C:\\projects\\var.7z\" \nrem if \"%BUILD_TYPE%\"==\"MSYS\" 7z e \"C:\\projects\\var.7z\" \"cache\\mingw-get\\packages\\*\" -aoa -o\"C:\\MinGW\\msys\\1.0\\var\\cache\\mingw-get\\packages\\\" \nrem if \"%BUILD_TYPE%\"==\"MSYS\" C:\\MinGW\\bin\\mingw-get --print-uris install %MINGW_PACKAGES%\nrem if \"%BUILD_TYPE%\"==\"MSYS\" C:\\MinGW\\bin\\mingw-get install %MINGW_PACKAGES%\n\nif \"%BUILD_TYPE%\"==\"CYGWIN\" appveyor DownloadFile \"https://cygwin.com/setup-x86.exe\" -FileName \"%BUILD_BIN%\\..\\setup-x86.exe\" \nif \"%BUILD_TYPE%\"==\"CYGWIN\" %BUILD_BIN%\\..\\setup-x86.exe --allow-unsupported-windows -qnfNdO -R %BUILD_BIN%\\.. --site http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/2022/11/23/063457 -l %BUILD_BIN%\\..\\var\\cache\\setup -P %CYG_PACKAGES%\n\nif \"%BUILD_TYPE%\"==\"CYGWIN64\" appveyor DownloadFile \"https://cygwin.com/setup-x86_64.exe\" -FileName \"%BUILD_BIN%\\..\\setup-x86_64.exe\"\nif \"%BUILD_TYPE%\"==\"CYGWIN64\" %BUILD_BIN%\\..\\setup-x86_64.exe -qnfNdO -R %BUILD_BIN%\\.. -s https://cygwin.mirror.constant.com -l %BUILD_BIN%\\..\\var\\cache\\setup -P %CYG_PACKAGES%\n\n\necho Get cJSON\nif not exist \"%CJSON_ARCHIVE%\" appveyor DownloadFile \"https://github.com/DaveGamble/cJSON/archive/%CJSON_ARCHIVE%\"\n\nrem powershell.exe -Command \"& {$blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))}\""
environment:
CYG_PACKAGES: libgmp-devel,libncurses-devel,libdb-devel,libxml2-devel,libjson-c-devel,libiconv-devel,automake,make,gcc-core,gettext-devel,libtool,bison,flex,help2man
CJSON_VERSION: 1.7.18
CJSON_ARCHIVE: v%CJSON_VERSION%.tar.gz
MINGW_CONFIGURE_FLAGS: --enable-debug
MINGW_PACKAGES: mingw32-libpdcurses mingw32-pdcurses mingw32-gmp
NEWCOB: tests\cobol85\newcob.val
PROJECT_SLUG_UBUNTU: gnucobol-3-x
PACKAGE_VERSION: 3.3-dev
MINGW_BDB_VERS: db-6.0.19.NC
MINGW_GMP_VERS: gmp-6.3.0
MINGW_PDCM_VERS: 4.4.0
matrix:
- BUILD_TYPE: MSYS
BUILD_BIN: C:\MinGW\msys\1.0\bin
- BUILD_TYPE: CYGWIN64
BUILD_BIN: C:\cygwin64\bin
- BUILD_TYPE: CYGWIN
BUILD_BIN: C:\cygwin32\bin
install:
- cmd: >-
if "%BUILD_TYPE%"=="MSYS" echo build and install GNU Multiple Precision Arithmetic Library %MINGW_GMP_VERS%
if "%BUILD_TYPE%"=="MSYS" if not exist "%MINGW_GMP_VERS%" appveyor DownloadFile "https://gmplib.org/download/gmp/%MINGW_GMP_VERS%.tar.xz" -FileName "%MINGW_GMP_VERS%.tar.xz"
if "%BUILD_TYPE%"=="MSYS" if not exist "%MINGW_GMP_VERS%" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\" && tar -xvf %MINGW_GMP_VERS%.tar.xz"
if "%BUILD_TYPE%"=="MSYS" if not exist "%MINGW_GMP_VERS%\config.log" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\%MINGW_GMP_VERS%\" && ./configure --prefix=/mingw --enable-fat --enable-shared --disable-static CFLAGS=\"-Wno-attributes -Wno-ignored-attributes\" ABI=32 && make"
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\%MINGW_GMP_VERS%\" && make install"
if "%BUILD_TYPE%"=="MSYS" appveyor AddMessage "MinGW setup for GMP %MINGW_GMP_VERS% done"
if "%BUILD_TYPE%"=="MSYS" echo build and install PDCursesMod %MINGW_PDCM_VERS%
if "%BUILD_TYPE%"=="MSYS" if not exist "PDCursesMod-%MINGW_PDCM_VERS%" appveyor DownloadFile "https://github.com/Bill-Gray/PDCursesMod/archive/refs/tags/v%MINGW_PDCM_VERS%.tar.gz" -FileName "PDCursesMod-%MINGW_PDCM_VERS%.tar.xz"
if "%BUILD_TYPE%"=="MSYS" if not exist "PDCursesMod-%MINGW_PDCM_VERS%" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\" && tar -xvf PDCursesMod-%MINGW_PDCM_VERS%.tar.xz"
if "%BUILD_TYPE%"=="MSYS" if not exist "PDCursesMod-%MINGW_PDCM_VERS%\pdcurses.h" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\PDCursesMod-%MINGW_PDCM_VERS%\wincon\" && make INFOEX=N CHTYPE_64=Y DEBUG=Y DLL=Y DLLNAME=libpdcurses LIBNAME=libpdcurses.dll"
if "%BUILD_TYPE%"=="MSYS" if not exist "PDCursesMod-%MINGW_PDCM_VERS%\pdcurses.h" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\PDCursesMod-%MINGW_PDCM_VERS%\wingui\" && make CHTYPE_64=Y DEBUG=Y DLL=Y DLLNAME=libpdcurses LIBNAME=libpdcurses.dll"
if "%BUILD_TYPE%"=="MSYS" if not exist "PDCursesMod-%MINGW_PDCM_VERS%\pdcurses.h" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\PDCursesMod-%MINGW_PDCM_VERS%\vt\" && make CHTYPE_64=Y DEBUG=Y DLL=Y DLLNAME=libpdcurses LIBNAME=libpdcurses.dll CFLAGS=\"-Wall -Wextra -pedantic -g -DPDCDEBUG -fPIC -DPDC_DLL_BUILD\""
if "%BUILD_TYPE%"=="MSYS" if not exist "PDCursesMod-%MINGW_PDCM_VERS%\pdcurses.h" echo #define CHTYPE_64 > "PDCursesMod-%MINGW_PDCM_VERS%\pdcurses.h" && echo #define PDC_DLL_BUILD >> "PDCursesMod-%MINGW_PDCM_VERS%\pdcurses.h" && echo #include "pdcurses/curses.h" >> "PDCursesMod-%MINGW_PDCM_VERS%\pdcurses.h"
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\PDCursesMod-%MINGW_PDCM_VERS%\" && install wincon/libpdcurses.dll.a /mingw/lib/"
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\PDCursesMod-%MINGW_PDCM_VERS%\" && install wincon/libpdcurses.dll /mingw/bin/"
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\PDCursesMod-%MINGW_PDCM_VERS%\" && install wincon/libpdcurses.dll /mingw/bin/libpdcurses-wincon.dll"
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\PDCursesMod-%MINGW_PDCM_VERS%\" && install wingui/libpdcurses.dll /mingw/bin/libpdcurses-wingui.dll"
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\PDCursesMod-%MINGW_PDCM_VERS%\" && install vt/libpdcurses.dll /mingw/bin/libpdcurses-vt.dll"
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "install -d /mingw/include/pdcurses"
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\PDCursesMod-%MINGW_PDCM_VERS%\" && install -m 0644 curses.h panel.h term.h /mingw/include/pdcurses/"
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\PDCursesMod-%MINGW_PDCM_VERS%\" && install -m 0644 pdcurses.h /mingw/include/"
if "%BUILD_TYPE%"=="MSYS" appveyor AddMessage "MinGW setup for PDCursesMod %MINGW_PDCM_VERS% done"
if "%BUILD_TYPE%"=="MSYS" echo build and install Berkeley DB %MINGW_BDB_VERS%
if "%BUILD_TYPE%"=="MSYS" if not exist "%MINGW_BDB_VERS%" appveyor DownloadFile "https://download.oracle.com/berkeley-db/%MINGW_BDB_VERS%.tar.gz" -FileName "%MINGW_BDB_VERS%.tar.gz"
rem if "%BUILD_TYPE%"=="MSYS" if not exist "%MINGW_BDB_VERS%" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\" && gzip -d %MINGW_BDB_VERS%.tar.gz && tar --delete --wildcards -f %MINGW_BDB_VERS%.tar %MINGW_BDB_VERS%/*java %MINGW_BDB_VERS%/perl %MINGW_BDB_VERS%/build_* %MINGW_BDB_VERS%/examples_*"
rem if "%BUILD_TYPE%"=="MSYS" if not exist "%MINGW_BDB_VERS%" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\" && tar -xvf %MINGW_BDB_VERS%.tar && rm %MINGW_BDB_VERS%.tar"
if "%BUILD_TYPE%"=="MSYS" if not exist "%MINGW_BDB_VERS%" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\" && tar -xvf %MINGW_BDB_VERS%.tar.gz && sed -i 's/_tcsclen/strlen/' %MINGW_BDB_VERS%/src/os_windows/os_stat.c"
if "%BUILD_TYPE%"=="MSYS" if not exist "%MINGW_BDB_VERS%\build_unix\config.log" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\%MINGW_BDB_VERS%\build_unix\" && ../dist/configure --prefix=/mingw --enable-mingw --enable-debug --disable-static --disable-replication --disable-tcl LIBCSO_LIBS=-lwsock32 && make || make"
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\%MINGW_BDB_VERS%\build_unix\" && make install"
if "%BUILD_TYPE%"=="MSYS" appveyor AddMessage "MinGW setup for Berkeley DB %MINGW_BDB_VERS% done"
if "%BUILD_TYPE%"=="MSYS" if "%EXTERNAL_JOB_ID%"=="" (set "URL=%APPVEYOR_URL%/api/projects/%APPVEYOR_ACCOUNT_NAME%/%PROJECT_SLUG_UBUNTU%/artifacts/gnucobol-%PACKAGE_VERSION%.tar.gz?job=Image: Ubuntu2004") else (set "URL=%APPVEYOR_URL%/api/buildjobs/%EXTERNAL_JOB_ID%/artifacts/gnucobol-%PACKAGE_VERSION%.tar.gz")
if "%BUILD_TYPE%"=="MSYS" echo URL to download is: %URL%
if "%BUILD_TYPE%"=="MSYS" appveyor DownloadFile "%URL%" -FileName artifact.tar.gz
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\" && tar -xf \"artifact.tar.gz\" --directory=/tmp && cp -r -u /tmp/gnucobol-*/* ."
if "%BUILD_TYPE%"=="MSYS" if not exist "%NEWCOB%" appveyor DownloadFile "https://sourceforge.net/projects/gnucobol/files/nist/newcob.val.tar.gz/download" -FileName "%NEWCOB%.tar.gz"
if "%BUILD_TYPE%"=="CYGWIN" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\" && ./autogen.sh install"
if "%BUILD_TYPE%"=="CYGWIN64" %BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\" && ./build_aux/bootstrap install"
%BUILD_BIN%\bash -lc "cd \"%APPVEYOR_BUILD_FOLDER%\" && tar -xf \"$CJSON_ARCHIVE\" && cp -p cJSON-$CJSON_VERSION/cJSON.* libcob/"
appveyor AddMessage "Build environment for %BUILD_TYPE% is created"
cache:
- '%NEWCOB%'
- '%CJSON_ARCHIVE%'
- '%MINGW_GMP_VERS%'
- '%MINGW_BDB_VERS%'
- PDCursesMod-%MINGW_PDCM_VERS%
- '%BUILD_BIN%\..\setup-x86.exe'
- '%BUILD_BIN%\..\setup-x86_64.exe'
build_script:
- cmd: >-
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"c:\projects\gnucobol\" && ./configure %MINGW_CONFIGURE_FLAGS%"
rem LIBCOB_CPPFLAGS=\"-DNCURSES_MOUSE_VERSION=2\"
if "%BUILD_TYPE:~0,6%"=="CYGWIN" %BUILD_BIN%\bash -lc "cd \"c:\projects\gnucobol\" && ./configure %CYG_CONFIGURE_FLAGS%"
appveyor AddMessage "configuration for %BUILD_TYPE% is finished"
appveyor PushArtifact config.log
appveyor PushArtifact config.h
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"c:\projects\gnucobol\" && make"
if "%BUILD_TYPE:~0,6%"=="CYGWIN" %BUILD_BIN%\bash -lc "cd \"c:\projects\gnucobol\" && make -j2"
appveyor AddMessage "build for %BUILD_TYPE% is finished"
test_script:
- cmd: >-
rem %BUILD_BIN%\bash -lc "cd \"C:\projects\gnucobol\" && (make check TESTSUITEFLAGS=\"--jobs=3\" || appveyor AddMessage \"Internal Tests failed\" -Category Error)"
%BUILD_BIN%\bash -lc "cd \"C:\projects\gnucobol\" && (make check || make check TESTSUITEFLAGS=\"--recheck --verbose\" || appveyor AddMessage \"Internal Tests failed\" -Category Error)"
appveyor AddMessage "internal testsuite is finished"
if "%BUILD_TYPE:~0,6%"=="CYGWIN" %BUILD_BIN%\bash -lc "cd \"C:\projects\gnucobol\" && (make -j3 test || (appveyor AddMessage \"NIST Tests failed\" -Category Error && false))"
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"C:\projects\gnucobol\" && (make test || (appveyor AddMessage \"NIST Tests failed\" -Category Error && false))"
appveyor AddMessage "NIST testsuite is finished"
if "%BUILD_TYPE%"=="MSYS" %BUILD_BIN%\bash -lc "cd \"C:\projects\gnucobol\" && make distmingwdir"
artifacts:
- path: config.log
name: configuration for this build
- path: tests/testsuite.log
name: testsuite results
- path: tests/cobol85/summary.log
name: NIST results (summary)
- path: GnuCOBOL_mingw
name: gnucobol-%PACKAGE_VERSION%-MinGW-binaries
- path: GnuCOBOL_mingw_dbg
name: gnucobol-%PACKAGE_VERSION%-MinGW-binaries (debug) |
As a bunch of other code is not merged that is touched by that, it would not be useful to merge that revision and I guess the defines moved to other places in trunk in any case. Bringing the applied definitions around that "in line" (likely manually if we want that "soon") between 3.x and trunk would solve that as those errors don't exist in 3.x - compare |
hm, possibly the gc4 branch should have been update from master instead and this PR kept open`(after rebase)? Best wishes for the enxt bunch and possibly the addition of "good old MSYS mingw32" to CI, |
Yeah, "accidentally" pushed to the gc4 branch, which automatically closed this PR which I can't reopen 😅 |
I wasn't able to reproduce the failure, neither using the new "MSYS 1 / MinGW 32" CI or locally on our Windows machine (regardless the state of the That being said, I had to adjust the build process compared with what you had in AppVeyor... |
@GitMensch |
This PR is only dedicated to running CI in the context of forward-porting GC3 patches to GC4.