1b7b1596dSPeter Maydellmsys2-64bit: 2e312d1fdSDaniel P. Berrangé extends: .base_job_template 37876cba8SThomas Huth tags: 436fa7c68SRichard Henderson - saas-windows-medium-amd64 57876cba8SThomas Huth cache: 62f7350cdSDaniel P. Berrangé key: "$CI_JOB_NAME" 77876cba8SThomas Huth paths: 85ef56e3bSDaniel P. Berrangé - msys64/var/cache 92f7350cdSDaniel P. Berrangé - ccache 10ef4fe31fSDaniel P. Berrangé when: always 117876cba8SThomas Huth needs: [] 127876cba8SThomas Huth stage: build 132f7350cdSDaniel P. Berrangé timeout: 100m 14f54ba56dSDaniel P. Berrangé variables: 15b7b1596dSPeter Maydell # Select the "64 bit, gcc and MSVCRT" MSYS2 environment 16b7b1596dSPeter Maydell MSYSTEM: MINGW64 17f54ba56dSDaniel P. Berrangé # This feature doesn't (currently) work with PowerShell, it stops 18f54ba56dSDaniel P. Berrangé # the echo'ing of commands being run and doesn't show any timing 19f54ba56dSDaniel P. Berrangé FF_SCRIPT_SECTIONS: 0 208f97deb9SThomas Huth CONFIGURE_ARGS: --disable-system --enable-tools -Ddebug=false -Doptimization=0 219837697bSAlex Bennée # The Windows git is a bit older so override the default 229837697bSAlex Bennée GIT_FETCH_EXTRA_FLAGS: --no-tags --prune --quiet 23a3fcbb47SMarc-André Lureau artifacts: 24a3fcbb47SMarc-André Lureau name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" 25a3fcbb47SMarc-André Lureau expire_in: 7 days 26a3fcbb47SMarc-André Lureau paths: 27a3fcbb47SMarc-André Lureau - build/meson-logs/testlog.txt 2881a12315SMarc-André Lureau reports: 2981a12315SMarc-André Lureau junit: "build/meson-logs/testlog.junit.xml" 307876cba8SThomas Huth before_script: 31b64052cdSDaniel P. Berrangé - Write-Output "Acquiring msys2.exe installer at $(Get-Date -Format u)" 327876cba8SThomas Huth - If ( !(Test-Path -Path msys64\var\cache ) ) { 337876cba8SThomas Huth mkdir msys64\var\cache 347876cba8SThomas Huth } 3546aedd34SDaniel P. Berrangé - Invoke-WebRequest 3646aedd34SDaniel P. Berrangé "https://repo.msys2.org/distrib/msys2-x86_64-latest.sfx.exe.sig" 3746aedd34SDaniel P. Berrangé -outfile "msys2.exe.sig" 3846aedd34SDaniel P. Berrangé - if ( Test-Path -Path msys64\var\cache\msys2.exe.sig ) { 3946aedd34SDaniel P. Berrangé Write-Output "Cached installer sig" ; 4046aedd34SDaniel P. Berrangé if ( ((Get-FileHash msys2.exe.sig).Hash -ne (Get-FileHash msys64\var\cache\msys2.exe.sig).Hash) ) { 4146aedd34SDaniel P. Berrangé Write-Output "Mis-matched installer sig, new installer download required" ; 4246aedd34SDaniel P. Berrangé Remove-Item -Path msys64\var\cache\msys2.exe.sig ; 4346aedd34SDaniel P. Berrangé if ( Test-Path -Path msys64\var\cache\msys2.exe ) { 4446aedd34SDaniel P. Berrangé Remove-Item -Path msys64\var\cache\msys2.exe 4546aedd34SDaniel P. Berrangé } 4646aedd34SDaniel P. Berrangé } else { 4746aedd34SDaniel P. Berrangé Write-Output "Matched installer sig, cached installer still valid" 4846aedd34SDaniel P. Berrangé } 4946aedd34SDaniel P. Berrangé } else { 5046aedd34SDaniel P. Berrangé Write-Output "No cached installer sig, new installer download required" ; 5146aedd34SDaniel P. Berrangé if ( Test-Path -Path msys64\var\cache\msys2.exe ) { 5246aedd34SDaniel P. Berrangé Remove-Item -Path msys64\var\cache\msys2.exe 5346aedd34SDaniel P. Berrangé } 5446aedd34SDaniel P. Berrangé } 5546aedd34SDaniel P. Berrangé - if ( !(Test-Path -Path msys64\var\cache\msys2.exe ) ) { 5646aedd34SDaniel P. Berrangé Write-Output "Fetching latest installer" ; 577876cba8SThomas Huth Invoke-WebRequest 5846aedd34SDaniel P. Berrangé "https://repo.msys2.org/distrib/msys2-x86_64-latest.sfx.exe" 5946aedd34SDaniel P. Berrangé -outfile "msys64\var\cache\msys2.exe" ; 6046aedd34SDaniel P. Berrangé Copy-Item -Path msys2.exe.sig -Destination msys64\var\cache\msys2.exe.sig 6146aedd34SDaniel P. Berrangé } else { 6246aedd34SDaniel P. Berrangé Write-Output "Using cached installer" 637876cba8SThomas Huth } 64b64052cdSDaniel P. Berrangé - Write-Output "Invoking msys2.exe installer at $(Get-Date -Format u)" 657876cba8SThomas Huth - msys64\var\cache\msys2.exe -y 667876cba8SThomas Huth - ((Get-Content -path .\msys64\etc\\post-install\\07-pacman-key.post -Raw) 677876cba8SThomas Huth -replace '--refresh-keys', '--version') | 687876cba8SThomas Huth Set-Content -Path ${CI_PROJECT_DIR}\msys64\etc\\post-install\\07-pacman-key.post 697876cba8SThomas Huth - .\msys64\usr\bin\bash -lc "sed -i 's/^CheckSpace/#CheckSpace/g' /etc/pacman.conf" 707876cba8SThomas Huth - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu' # Core update 717876cba8SThomas Huth - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu' # Normal update 727876cba8SThomas Huth - taskkill /F /FI "MODULES eq msys-2.0.dll" 7311961d08SDaniel P. Berrangé script: 74b64052cdSDaniel P. Berrangé - Write-Output "Installing mingw packages at $(Get-Date -Format u)" 7511961d08SDaniel P. Berrangé - .\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed 7611961d08SDaniel P. Berrangé bison diffutils flex 7711961d08SDaniel P. Berrangé git grep make sed 78b7b1596dSPeter Maydell mingw-w64-x86_64-binutils 79b7b1596dSPeter Maydell mingw-w64-x86_64-ccache 80b7b1596dSPeter Maydell mingw-w64-x86_64-curl 81b7b1596dSPeter Maydell mingw-w64-x86_64-gcc 82b7b1596dSPeter Maydell mingw-w64-x86_64-glib2 83b7b1596dSPeter Maydell mingw-w64-x86_64-libnfs 84b7b1596dSPeter Maydell mingw-w64-x86_64-libssh 85b7b1596dSPeter Maydell mingw-w64-x86_64-ninja 86b7b1596dSPeter Maydell mingw-w64-x86_64-pixman 87b7b1596dSPeter Maydell mingw-w64-x86_64-pkgconf 88b7b1596dSPeter Maydell mingw-w64-x86_64-python 89b7b1596dSPeter Maydell mingw-w64-x86_64-zstd" 90b64052cdSDaniel P. Berrangé - Write-Output "Running build at $(Get-Date -Format u)" 91*c58156cdSPhilippe Mathieu-Daudé - $env:JOBS = $(.\msys64\usr\bin\bash -lc nproc) 9211961d08SDaniel P. Berrangé - $env:CHERE_INVOKING = 'yes' # Preserve the current working directory 9311961d08SDaniel P. Berrangé - $env:MSYS = 'winsymlinks:native' # Enable native Windows symlink 942f7350cdSDaniel P. Berrangé - $env:CCACHE_BASEDIR = "$env:CI_PROJECT_DIR" 952f7350cdSDaniel P. Berrangé - $env:CCACHE_DIR = "$env:CCACHE_BASEDIR/ccache" 962f7350cdSDaniel P. Berrangé - $env:CCACHE_MAXSIZE = "500M" 972f7350cdSDaniel P. Berrangé - $env:CCACHE_DEPEND = 1 # cache misses are too expensive with preprocessor mode 982f7350cdSDaniel P. Berrangé - $env:CC = "ccache gcc" 9911961d08SDaniel P. Berrangé - mkdir build 10011961d08SDaniel P. Berrangé - cd build 1012f7350cdSDaniel P. Berrangé - ..\msys64\usr\bin\bash -lc "ccache --zero-stats" 1028f97deb9SThomas Huth - ..\msys64\usr\bin\bash -lc "../configure $CONFIGURE_ARGS" 103*c58156cdSPhilippe Mathieu-Daudé - ..\msys64\usr\bin\bash -lc "make -j$env:JOBS" 10411961d08SDaniel P. Berrangé - ..\msys64\usr\bin\bash -lc "make check MTESTARGS='$TEST_ARGS' || { cat meson-logs/testlog.txt; exit 1; } ;" 1052f7350cdSDaniel P. Berrangé - ..\msys64\usr\bin\bash -lc "ccache --show-stats" 106b64052cdSDaniel P. Berrangé - Write-Output "Finished build at $(Get-Date -Format u)" 107