Gitlab also provides runners with Windows, we can use them to test compilation with MSYS2.
However, it takes quite a long time to set up the VM, so to stay in the 1h time frame, we can only compile and check one target here. And there is also still a problem with compiling the multiboot.bin in pc-bios/optionrom/, so this is currently disabled, too. Signed-off-by: Thomas Huth <th...@redhat.com> --- I'm sending this out as an RFC in case somebody else wants to play with this. Considering that the corresponding job in Cirrus-CI compiles way more targets within 1 hour, we might rather want to keep using the Cirrus-CI job instead? .gitlab-ci.d/qemu-project.yml | 1 + .gitlab-ci.d/windows.yml | 59 +++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 .gitlab-ci.d/windows.yml diff --git a/.gitlab-ci.d/qemu-project.yml b/.gitlab-ci.d/qemu-project.yml index 64cb2ba1da..f1a34038af 100644 --- a/.gitlab-ci.d/qemu-project.yml +++ b/.gitlab-ci.d/qemu-project.yml @@ -9,3 +9,4 @@ include: - local: '/.gitlab-ci.d/crossbuilds.yml' - local: '/.gitlab-ci.d/buildtest.yml' - local: '/.gitlab-ci.d/static_checks.yml' + - local: '/.gitlab-ci.d/windows.yml' diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml new file mode 100644 index 0000000000..1874a06739 --- /dev/null +++ b/.gitlab-ci.d/windows.yml @@ -0,0 +1,59 @@ +.shared_windows_runners: + tags: + - shared-windows + - windows + - windows-1809 + +msys2-build: + extends: .shared_windows_runners + stage: build + before_script: + - Invoke-WebRequest + "https://github.com/msys2/msys2-installer/releases/download/nightly-x86_64/msys2-base-x86_64-latest.sfx.exe" + -outfile "msys2.exe" + - .\msys2.exe -y -oC:\ + - del msys2.exe + - ((Get-Content -path C:\msys64\etc\\post-install\\07-pacman-key.post -Raw) + -replace '--refresh-keys', '--version') | + Set-Content -Path C:\msys64\etc\\post-install\\07-pacman-key.post + - C:\msys64\usr\bin\bash -lc "sed -i 's/^CheckSpace/#CheckSpace/g' /etc/pacman.conf" + - C:\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu' # Core update + - C:\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu' # Normal update + - C:\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed + diffutils git grep make pkg-config sed + mingw-w64-x86_64-capstone + mingw-w64-x86_64-curl + mingw-w64-x86_64-cyrus-sasl + mingw-w64-x86_64-gcc + mingw-w64-x86_64-glib2 + mingw-w64-x86_64-gnutls + mingw-w64-x86_64-gtk3 + mingw-w64-x86_64-libgcrypt + mingw-w64-x86_64-libjpeg-turbo + mingw-w64-x86_64-libnfs + mingw-w64-x86_64-libpng + mingw-w64-x86_64-libssh + mingw-w64-x86_64-libtasn1 + mingw-w64-x86_64-libusb + mingw-w64-x86_64-libxml2 + mingw-w64-x86_64-lzo2 + mingw-w64-x86_64-make + mingw-w64-x86_64-nettle + mingw-w64-x86_64-ninja + mingw-w64-x86_64-pixman + mingw-w64-x86_64-pkgconf + mingw-w64-x86_64-python + mingw-w64-x86_64-SDL2 + mingw-w64-x86_64-SDL2_image + mingw-w64-x86_64-snappy + mingw-w64-x86_64-usbredir + mingw-w64-x86_64-zstd " + - taskkill /F /FI "MODULES eq msys-2.0.dll" + script: + - $env:CHERE_INVOKING = 'yes' # Preserve the current working directory + - $env:MSYSTEM = 'MINGW64' # Start a 64 bit Mingw environment + - C:\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu + --enable-capstone=system --disable-fdt' + - C:\msys64\usr\bin\bash -lc "sed -i '/^ROMS=/d' build/config-host.mak" + - C:\msys64\usr\bin\bash -lc 'make -j2' + - C:\msys64\usr\bin\bash -lc 'make V=1 check' -- 2.27.0