From 16cd0d5cfc0c4702b8220dad8e91f31a89d904ba Mon Sep 17 00:00:00 2001 From: Enrico Tassi Date: Tue, 8 Dec 2020 11:41:32 +0100 Subject: [ci] windows job based on the platform --- dev/ci/gitlab.bat | 141 -------------------------------------------- dev/ci/platform-windows.bat | 105 +++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 141 deletions(-) delete mode 100755 dev/ci/gitlab.bat create mode 100755 dev/ci/platform-windows.bat (limited to 'dev') diff --git a/dev/ci/gitlab.bat b/dev/ci/gitlab.bat deleted file mode 100755 index dc6423332f..0000000000 --- a/dev/ci/gitlab.bat +++ /dev/null @@ -1,141 +0,0 @@ -@ECHO OFF - -REM This script builds and signs the Windows packages on Gitlab - -ECHO "Start Time" -TIME /T - -REM List currently used cygwin and target folders for debugging / maintenance purposes - -ECHO "Currently used cygwin folders" -DIR C:\ci\cygwin* -ECHO "Currently used target folders" -DIR C:\ci\coq* -ECHO "Root folders" -DIR C:\ - -if %ARCH% == 32 ( - SET ARCHLONG=i686 - SET SETUP=setup-x86.exe -) - -if %ARCH% == 64 ( - SET ARCHLONG=x86_64 - SET SETUP=setup-x86_64.exe -) - -SET CYGROOT=C:\ci\cygwin%ARCH% -SET DESTCOQ=C:\ci\coq%ARCH% -SET CYGCACHE=C:\ci\cache\cgwin - -CALL :MakeUniqueFolder %CYGROOT% CYGROOT -CALL :MakeUniqueFolder %DESTCOQ% DESTCOQ - -powershell -Command "(New-Object Net.WebClient).DownloadFile('http://www.cygwin.com/%SETUP%', '%SETUP%')" -SET CI_PROJECT_DIR_MFMT=%CI_PROJECT_DIR:\=/% -SET CI_PROJECT_DIR_CFMT=%CI_PROJECT_DIR_MFMT:C:/=/cygdrive/c/% -SET COQREGTESTING=Y -SET PATH=%PATH%;C:\Program Files\7-Zip\;C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin - -IF "%WINDOWS%" == "enabled_all_addons" ( - SET EXTRA_ADDONS=^ - -addon=bignums ^ - -addon=equations ^ - -addon=mtac2 ^ - -addon=mathcomp ^ - -addon=menhir ^ - -addon=menhirlib ^ - -addon=compcert ^ - -addon=extlib ^ - -addon=quickchick ^ - -addon=coquelicot ^ - -addon=vst ^ - -addon=aactactics ^ - -addon=flocq ^ - -addon=interval ^ - -addon=gappa_tool ^ - -addon=gappa ^ - -addon=elpi ^ - -addon=HB -) ELSE ( - SET "EXTRA_ADDONS= " -) - -call %CI_PROJECT_DIR%\dev\build\windows\MakeCoq_MinGW.bat -threads=1 ^ - -arch=%ARCH% -installer=Y -coqver=%CI_PROJECT_DIR_CFMT% ^ - -destcyg=%CYGROOT% -destcoq=%DESTCOQ% -cygcache=%CYGCACHE% ^ - %EXTRA_ADDONS% ^ - -make=N ^ - -setup %CI_PROJECT_DIR%\%SETUP% || GOTO ErrorCopyLogFilesAndExit - -ECHO "Start Artifact Creation" -TIME /T - -mkdir artifacts - -CALL :CopyLogFiles - -copy "%CYGROOT%\build\coq-local\dev\nsis\*.exe" artifacts || GOTO ErrorExit -REM The open source archive is only required for release builds -IF DEFINED WIN_CERTIFICATE_PATH ( - 7z a artifacts\coq-opensource-archive-windows-%ARCHLONG%.zip %CYGROOT%\build\tarballs\* || GOTO ErrorExit -) ELSE ( - REM In non release builds, create a dummy file - ECHO "This is not a release build - open source archive not created / uploaded" > artifacts\coq-opensource-info.txt -) - -REM DO NOT echo the signing command below, as this would leak secrets in the logs -IF DEFINED WIN_CERTIFICATE_PATH ( - IF DEFINED WIN_CERTIFICATE_PASSWORD ( - ECHO Signing package - @signtool sign /f %WIN_CERTIFICATE_PATH% /p %WIN_CERTIFICATE_PASSWORD% dev\nsis\*.exe - signtool verify /pa dev\nsis\*.exe - ) -) - -ECHO "Finished Artifact Creation" -TIME /T - -CALL :CleanupFolders - -ECHO "Finished Cleanup" -TIME /T - -GOTO :EOF - -:CopyLogFiles - ECHO Copy log files for artifact upload - MKDIR artifacts\buildlogs - COPY %CYGROOT%\build\buildlogs\* artifacts\buildlogs - MKDIR artifacts\filelists - COPY %CYGROOT%\build\filelists\* artifacts\filelists - MKDIR artifacts\flagfiles - COPY %CYGROOT%\build\flagfiles\* artifacts\flagfiles - GOTO :EOF - -:CleanupFolders - ECHO "Cleaning %CYGROOT%" - RMDIR /S /Q "%CYGROOT%" - ECHO "Cleaning %DESTCOQ%" - RMDIR /S /Q "%DESTCOQ%" - GOTO :EOF - -:MakeUniqueFolder - REM Create a uniquely named folder - REM This script is safe because folder creation is atomic - either we create it or fail - REM %1 = base path or directory (_%RANDOM%_%RANDOM% is appended to this) - REM %2 = name of the variable which receives the unique folder name - SET "UNIQUENAME=%1_%RANDOM%_%RANDOM%" - MKDIR "%UNIQUENAME%" - IF ERRORLEVEL 1 GOTO :MakeUniqueFolder - SET "%2=%UNIQUENAME%" - GOTO :EOF - -:ErrorCopyLogFilesAndExit - CALL :CopyLogFiles - REM fall through - -:ErrorExit - CALL :CleanupFolders - ECHO ERROR %0 failed - EXIT /b 1 diff --git a/dev/ci/platform-windows.bat b/dev/ci/platform-windows.bat new file mode 100755 index 0000000000..513aec5f94 --- /dev/null +++ b/dev/ci/platform-windows.bat @@ -0,0 +1,105 @@ +REM @ECHO OFF + +REM SET ARCH=64 +REM SET PLATFORM=https://github.com/coq/platform/archive/v8.13.zip +REM SET CI_PROJECT_DIR=C:\root + +REM This script builds a minimal Windows platform on Gitlab + +ECHO "Start Time" +TIME /T + +REM List currently used cygwin and target folders for debugging / maintenance purposes + +ECHO "Currently used cygwin folders" +DIR C:\ci\cygwin* +ECHO "Currently used target folders" +DIR C:\ci\coq* +ECHO "Root folders" +DIR C:\ +ECHO "Powershell version" +powershell -Command "Get-Host" +ECHO "Git installation of Mingw" +DIR "C:\Program Files\Git\mingw64\bin\*.exe" + +ECHO "--------- START -------" + +SET CYGROOT=C:\ci\cygwin%ARCH% +SET CYGCACHE=C:\ci\cache\cgwin + +CALL :MakeUniqueFolder %CYGROOT% CYGROOT + +SET CI_PROJECT_DIR_MFMT=%CI_PROJECT_DIR:\=/% +SET CI_PROJECT_DIR_CFMT=%CI_PROJECT_DIR_MFMT:C:/=/cygdrive/c/% +SET COQREGTESTING=y +SET PATH=%PATH%;C:\Program Files\7-Zip;C:\Program Files\Git\mingw64\bin + + +ECHO "Downloading %PLATFORM%" +curl -L -o platform.zip "%PLATFORM%" +7z x platform.zip + +cd platform-* + +call coq_platform_make_windows.bat ^ + -arch=%ARCH% ^ + -destcyg=%CYGROOT% ^ + -cygcache=%CYGCACHE% ^ + -extent=i ^ + -parallel=p ^ + -jobs=2 ^ + -switch=d || GOTO ErrorCopyLogFilesAndExit + +cd .. + +SET BASH=%CYGROOT%\bin\bash + +ECHO "Start Artifact Creation" +TIME /T + +MKDIR %CI_PROJECT_DIR%\artifacts +%BASH% --login -c "cd coq-platform && windows/create_installer_windows.sh && cp windows_installer/*.exe %CI_PROJECT_DIR_CFMT%/artifacts" || GOTO ErrorCopyLogFilesAndExit +TIME /T + +CALL :CopyLogFiles + +ECHO "Finished Artifact Creation" +TIME /T + +CALL :CleanupFolders + +ECHO "Finished Cleanup" +TIME /T + +GOTO :EOF + +:CopyLogFiles + ECHO Copy log files for artifact upload + REM This is currently not supported by the opam based build scripts + GOTO :EOF + +:CleanupFolders + ECHO "Cleaning %CYGROOT%" + RMDIR /S /Q "%CYGROOT%" + GOTO :EOF + +:MakeUniqueFolder + REM Create a uniquely named folder + REM This script is safe because folder creation is atomic - either we create it or fail + REM %1 = base path or directory (_%RANDOM%_%RANDOM% is appended to this) + REM %2 = name of the variable which receives the unique folder name + SET "UNIQUENAME=%1_%RANDOM%_%RANDOM%" + MKDIR "%UNIQUENAME%" + IF ERRORLEVEL 1 GOTO :MakeUniqueFolder + RMDIR "%UNIQUENAME%" + SET "%2=%UNIQUENAME%" + GOTO :EOF + +:ErrorCopyLogFilesAndExit + CALL :CopyLogFiles + REM fall through + +:ErrorExit + CALL :CleanupFolders + ECHO ERROR %0 failed + EXIT /b 1 -- cgit v1.2.3