xref: /qemu/.gitlab-ci.d/windows.yml (revision c23a9563)
1.shared_msys2_builder:
2  extends: .base_job_template
3  tags:
4  - shared-windows
5  - windows
6  - windows-1809
7  cache:
8    key: "${CI_JOB_NAME}-cache"
9    paths:
10      - ${CI_PROJECT_DIR}/msys64/var/cache
11  needs: []
12  stage: build
13  timeout: 70m
14  before_script:
15  - If ( !(Test-Path -Path msys64\var\cache ) ) {
16      mkdir msys64\var\cache
17    }
18  - If ( !(Test-Path -Path msys64\var\cache\msys2.exe ) ) {
19      Invoke-WebRequest
20      "https://github.com/msys2/msys2-installer/releases/download/2022-06-03/msys2-base-x86_64-20220603.sfx.exe"
21      -outfile "msys64\var\cache\msys2.exe"
22    }
23  - msys64\var\cache\msys2.exe -y
24  - ((Get-Content -path .\msys64\etc\\post-install\\07-pacman-key.post -Raw)
25      -replace '--refresh-keys', '--version') |
26     Set-Content -Path ${CI_PROJECT_DIR}\msys64\etc\\post-install\\07-pacman-key.post
27  - .\msys64\usr\bin\bash -lc "sed -i 's/^CheckSpace/#CheckSpace/g' /etc/pacman.conf"
28  - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'  # Core update
29  - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'  # Normal update
30  - taskkill /F /FI "MODULES eq msys-2.0.dll"
31
32msys2-64bit:
33  extends: .shared_msys2_builder
34  script:
35  - .\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed
36      bison diffutils flex
37      git grep make sed
38      mingw-w64-x86_64-capstone
39      mingw-w64-x86_64-curl
40      mingw-w64-x86_64-cyrus-sasl
41      mingw-w64-x86_64-gcc
42      mingw-w64-x86_64-glib2
43      mingw-w64-x86_64-gnutls
44      mingw-w64-x86_64-libnfs
45      mingw-w64-x86_64-libpng
46      mingw-w64-x86_64-libssh
47      mingw-w64-x86_64-libtasn1
48      mingw-w64-x86_64-libusb
49      mingw-w64-x86_64-nettle
50      mingw-w64-x86_64-ninja
51      mingw-w64-x86_64-pixman
52      mingw-w64-x86_64-pkgconf
53      mingw-w64-x86_64-python
54      mingw-w64-x86_64-SDL2
55      mingw-w64-x86_64-SDL2_image
56      mingw-w64-x86_64-snappy
57      mingw-w64-x86_64-usbredir
58      mingw-w64-x86_64-zstd "
59  - $env:CHERE_INVOKING = 'yes'  # Preserve the current working directory
60  - $env:MSYSTEM = 'MINGW64'     # Start a 64 bit Mingw environment
61  - $env:MSYS = 'winsymlinks:native' # Enable native Windows symlink
62  - .\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu
63      --enable-capstone --without-default-devices'
64  - .\msys64\usr\bin\bash -lc 'make'
65  - .\msys64\usr\bin\bash -lc 'make check || { cat build/meson-logs/testlog.txt; exit 1; } ;'
66
67msys2-32bit:
68  extends: .shared_msys2_builder
69  script:
70  - .\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed
71      bison diffutils flex
72      git grep make sed
73      mingw-w64-i686-capstone
74      mingw-w64-i686-curl
75      mingw-w64-i686-cyrus-sasl
76      mingw-w64-i686-gcc
77      mingw-w64-i686-glib2
78      mingw-w64-i686-gnutls
79      mingw-w64-i686-gtk3
80      mingw-w64-i686-libgcrypt
81      mingw-w64-i686-libjpeg-turbo
82      mingw-w64-i686-libssh
83      mingw-w64-i686-libtasn1
84      mingw-w64-i686-libusb
85      mingw-w64-i686-lzo2
86      mingw-w64-i686-ninja
87      mingw-w64-i686-pixman
88      mingw-w64-i686-pkgconf
89      mingw-w64-i686-python
90      mingw-w64-i686-snappy
91      mingw-w64-i686-usbredir "
92  - $env:CHERE_INVOKING = 'yes'  # Preserve the current working directory
93  - $env:MSYSTEM = 'MINGW32'     # Start a 32-bit MinG environment
94  - $env:MSYS = 'winsymlinks:native' # Enable native Windows symlink
95  - mkdir output
96  - cd output
97  - ..\msys64\usr\bin\bash -lc "../configure --target-list=ppc64-softmmu"
98  - ..\msys64\usr\bin\bash -lc 'make'
99  - ..\msys64\usr\bin\bash -lc 'make check || { cat meson-logs/testlog.txt; exit 1; } ;'
100