Merge remote-tracking branch 'remotes/cohuck-gitlab/tags/s390x-20210121' into staging
[qemu.git] / .cirrus.yml
1 env:
2   CIRRUS_CLONE_DEPTH: 1
3
4 freebsd_12_task:
5   freebsd_instance:
6     image_family: freebsd-12-1
7     cpu: 8
8     memory: 8G
9   install_script:
10     - ASSUME_ALWAYS_YES=yes pkg bootstrap -f ;
11     - pkg install -y bash curl cyrus-sasl git glib gmake gnutls gsed
12           nettle perl5 pixman pkgconf png usbredir ninja
13   script:
14     - mkdir build
15     - cd build
16     - ../configure --enable-werror || { cat config.log meson-logs/meson-log.txt; exit 1; }
17     - gmake -j$(sysctl -n hw.ncpu)
18     - gmake -j$(sysctl -n hw.ncpu) check V=1
19
20 macos_task:
21   osx_instance:
22     image: catalina-base
23   install_script:
24     - brew install pkg-config python gnu-sed glib pixman make sdl2 bash ninja
25   script:
26     - mkdir build
27     - cd build
28     - ../configure --python=/usr/local/bin/python3 --enable-werror
29                    --extra-cflags='-Wno-error=deprecated-declarations'
30                    || { cat config.log meson-logs/meson-log.txt; exit 1; }
31     - gmake -j$(sysctl -n hw.ncpu)
32     - gmake check-unit V=1
33     - gmake check-block V=1
34     - gmake check-qapi-schema V=1
35     - gmake check-softfloat V=1
36     - gmake check-qtest-x86_64 V=1
37
38 macos_xcode_task:
39   osx_instance:
40     # this is an alias for the latest Xcode
41     image: catalina-xcode
42   install_script:
43     - brew install pkg-config gnu-sed glib pixman make sdl2 bash ninja
44   script:
45     - mkdir build
46     - cd build
47     - ../configure --extra-cflags='-Wno-error=deprecated-declarations' --enable-modules
48                    --enable-werror --cc=clang || { cat config.log meson-logs/meson-log.txt; exit 1; }
49     - gmake -j$(sysctl -n hw.ncpu)
50     - gmake check-unit V=1
51     - gmake check-block V=1
52     - gmake check-qapi-schema V=1
53     - gmake check-softfloat V=1
54     - gmake check-qtest-x86_64 V=1
55
56 windows_msys2_task:
57   timeout_in: 90m
58   windows_container:
59     image: cirrusci/windowsservercore:2019
60     os_version: 2019
61     cpu: 8
62     memory: 8G
63   env:
64     CIRRUS_SHELL: powershell
65     MSYS: winsymlinks:nativestrict
66     MSYSTEM: MINGW64
67     MSYS2_URL: https://github.com/msys2/msys2-installer/releases/download/2021-01-05/msys2-base-x86_64-20210105.sfx.exe
68     MSYS2_FINGERPRINT: 0
69     MSYS2_PACKAGES: "
70       diffutils git grep make pkg-config sed
71       mingw-w64-x86_64-python
72       mingw-w64-x86_64-python-sphinx
73       mingw-w64-x86_64-toolchain
74       mingw-w64-x86_64-SDL2
75       mingw-w64-x86_64-SDL2_image
76       mingw-w64-x86_64-gtk3
77       mingw-w64-x86_64-glib2
78       mingw-w64-x86_64-ninja
79       mingw-w64-x86_64-jemalloc
80       mingw-w64-x86_64-lzo2
81       mingw-w64-x86_64-zstd
82       mingw-w64-x86_64-libjpeg-turbo
83       mingw-w64-x86_64-pixman
84       mingw-w64-x86_64-libgcrypt
85       mingw-w64-x86_64-libpng
86       mingw-w64-x86_64-libssh
87       mingw-w64-x86_64-libxml2
88       mingw-w64-x86_64-snappy
89       mingw-w64-x86_64-libusb
90       mingw-w64-x86_64-usbredir
91       mingw-w64-x86_64-libtasn1
92       mingw-w64-x86_64-nettle
93       mingw-w64-x86_64-cyrus-sasl
94       mingw-w64-x86_64-curl
95       mingw-w64-x86_64-gnutls
96       mingw-w64-x86_64-libnfs
97     "
98     CHERE_INVOKING: 1
99   msys2_cache:
100     folder: C:\tools\archive
101     reupload_on_changes: false
102     # These env variables are used to generate fingerprint to trigger the cache procedure
103     # If wanna to force re-populate msys2, increase MSYS2_FINGERPRINT
104     fingerprint_script:
105       - |
106         echo $env:CIRRUS_TASK_NAME
107         echo $env:MSYS2_URL
108         echo $env:MSYS2_FINGERPRINT
109         echo $env:MSYS2_PACKAGES
110     populate_script:
111       - |
112         md -Force C:\tools\archive\pkg
113         $start_time = Get-Date
114         bitsadmin /transfer msys_download /dynamic /download /priority FOREGROUND $env:MSYS2_URL C:\tools\archive\base.exe
115         Write-Output "Download time taken: $((Get-Date).Subtract($start_time))"
116         cd C:\tools
117         C:\tools\archive\base.exe -y
118         del -Force C:\tools\archive\base.exe
119         Write-Output "Base install time taken: $((Get-Date).Subtract($start_time))"
120         $start_time = Get-Date
121
122         ((Get-Content -path C:\tools\msys64\etc\\post-install\\07-pacman-key.post -Raw) -replace '--refresh-keys', '--version') | Set-Content -Path C:\tools\msys64\etc\\post-install\\07-pacman-key.post
123         C:\tools\msys64\usr\bin\bash.exe -lc "sed -i 's/^CheckSpace/#CheckSpace/g' /etc/pacman.conf"
124         C:\tools\msys64\usr\bin\bash.exe -lc "export"
125         C:\tools\msys64\usr\bin\pacman.exe --noconfirm -Sy
126         echo Y | C:\tools\msys64\usr\bin\pacman.exe --noconfirm -Suu --overwrite=*
127         taskkill /F /FI "MODULES eq msys-2.0.dll"
128         tasklist
129         C:\tools\msys64\usr\bin\bash.exe -lc "mv -f /etc/pacman.conf.pacnew /etc/pacman.conf || true"
130         C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Suu --overwrite=*"
131         Write-Output "Core install time taken: $((Get-Date).Subtract($start_time))"
132         $start_time = Get-Date
133
134         C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S --needed $env:MSYS2_PACKAGES"
135         Write-Output "Package install time taken: $((Get-Date).Subtract($start_time))"
136         $start_time = Get-Date
137
138         del -Force -ErrorAction SilentlyContinue C:\tools\msys64\etc\mtab
139         del -Force -ErrorAction SilentlyContinue C:\tools\msys64\dev\fd
140         del -Force -ErrorAction SilentlyContinue C:\tools\msys64\dev\stderr
141         del -Force -ErrorAction SilentlyContinue C:\tools\msys64\dev\stdin
142         del -Force -ErrorAction SilentlyContinue C:\tools\msys64\dev\stdout
143         del -Force -Recurse -ErrorAction SilentlyContinue C:\tools\msys64\var\cache\pacman\pkg
144         tar cf C:\tools\archive\msys64.tar -C C:\tools\ msys64
145
146         Write-Output "Package archive time taken: $((Get-Date).Subtract($start_time))"
147         del -Force -Recurse -ErrorAction SilentlyContinue c:\tools\msys64 
148   install_script:
149     - |
150       $start_time = Get-Date
151       cd C:\tools
152       ls C:\tools\archive\msys64.tar
153       tar xf C:\tools\archive\msys64.tar
154       Write-Output "Extract msys2 time taken: $((Get-Date).Subtract($start_time))"
155   script:
156     - C:\tools\msys64\usr\bin\bash.exe -lc "mkdir build"
157     - C:\tools\msys64\usr\bin\bash.exe -lc "cd build && ../configure --python=python3"
158     - C:\tools\msys64\usr\bin\bash.exe -lc "cd build && make -j8"
159     - exit $LastExitCode
160   test_script:
161     - C:\tools\msys64\usr\bin\bash.exe -lc "cd build && make V=1 check"
162     - exit $LastExitCode