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