cirrus: Fixing and speedup the msys2/mingw CI

Use cache of cirrus caching msys2
The install of msys2 are refer to https://github.com/msys2/setup-msys2
The first time install msys2 would be time consuming, so increase timeout_in to 90m
according to https://cirrus-ci.org/faq/#instance-timed-out

Apply patch of https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg00072.html

[AJB: renamed printenv_script to setup_script]

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20201007145300.1197-2-luoyonggang@gmail.com>
Message-Id: <20201007160038.26953-5-alex.bennee@linaro.org>
This commit is contained in:
Yonggang Luo 2020-10-07 17:00:20 +01:00 committed by Alex Bennée
parent de00b8b376
commit 0026b33992

View File

@ -46,64 +46,86 @@ macos_xcode_task:
- gmake check
windows_msys2_task:
timeout_in: 90m
windows_container:
image: cirrusci/windowsservercore:cmake
image: cirrusci/windowsservercore:2019
os_version: 2019
cpu: 8
memory: 8G
env:
CIRRUS_SHELL: powershell
MSYS: winsymlinks:nativestrict
MSYSTEM: MINGW64
CHERE_INVOKING: 1
printenv_script:
- C:\tools\msys64\usr\bin\bash.exe -lc 'printenv'
setup_script:
- choco install -y --no-progress 7zip
- Write-Output $env:PATH
msys2_cache:
folder: C:\tools\archive
reupload_on_changes: false
fingerprint_script: cat .cirrus.yml
populate_script:
- |
md C:\tools
md C:\tools\archive
$start_time = Get-Date
cd C:\tools
bitsadmin /transfer msys_download /dynamic /download /priority FOREGROUND https://github.com/msys2/msys2-installer/releases/download/2020-09-03/msys2-base-x86_64-20200903.sfx.exe C:\tools\base.exe
Write-Output "Download time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)"
C:\tools\base.exe -y
((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
C:\tools\msys64\usr\bin\bash.exe -lc "sed -i 's/^CheckSpace/#CheckSpace/g' /etc/pacman.conf"
C:\tools\msys64\usr\bin\bash.exe -lc "export"
C:\tools\msys64\usr\bin\bash.exe -lc "grep -rl 'repo.msys2.org/' /etc/pacman.d/mirrorlist.* | xargs sed -i 's/repo.msys2.org\//mirrors.tuna.tsinghua.edu.cn\/msys2\//g'"
C:\tools\msys64\usr\bin\pacman.exe --noconfirm -Sy
echo Y | C:\tools\msys64\usr\bin\pacman.exe --noconfirm -Suu --overwrite=*
taskkill /F /FI "MODULES eq msys-2.0.dll"
tasklist
C:\tools\msys64\usr\bin\bash.exe -lc "mv -f /etc/pacman.conf.pacnew /etc/pacman.conf || true"
C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Suu --overwrite=*"
C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S --needed \
diffutils git grep make pkg-config sed \
mingw-w64-x86_64-python \
mingw-w64-x86_64-python-setuptools \
mingw-w64-x86_64-toolchain \
mingw-w64-x86_64-SDL2 \
mingw-w64-x86_64-SDL2_image \
mingw-w64-x86_64-gtk3 \
mingw-w64-x86_64-glib2 \
mingw-w64-x86_64-ninja \
mingw-w64-x86_64-jemalloc \
mingw-w64-x86_64-lzo2 \
mingw-w64-x86_64-zstd \
mingw-w64-x86_64-libjpeg-turbo \
mingw-w64-x86_64-pixman \
mingw-w64-x86_64-libgcrypt \
mingw-w64-x86_64-libpng \
mingw-w64-x86_64-libssh \
mingw-w64-x86_64-libxml2 \
mingw-w64-x86_64-snappy \
mingw-w64-x86_64-libusb \
mingw-w64-x86_64-usbredir \
mingw-w64-x86_64-libtasn1 \
mingw-w64-x86_64-nettle \
mingw-w64-x86_64-cyrus-sasl \
mingw-w64-x86_64-curl \
mingw-w64-x86_64-gnutls \
"
C:\tools\msys64\usr\bin\bash.exe -lc "rm -rf /var/cache/pacman/pkg/*"
cd C:\tools\msys64
echo "Start archive"
cmd /C "7z a -ttar . -so | 7z a -txz -simsys2-x86_64.tar C:\tools\archive\msys2-x86_64.tar.xz"
install_script:
- C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools &&
curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
- C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools &&
curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig"
- C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools &&
pacman -U --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
- C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Sy"
- C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S --needed
bash pacman pacman-mirrors msys2-runtime"
- taskkill /F /IM gpg-agent.exe
- C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Su"
- C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S --needed
base-devel
git
mingw-w64-x86_64-python
mingw-w64-x86_64-python-setuptools
mingw-w64-x86_64-toolchain
mingw-w64-x86_64-capstone
mingw-w64-x86_64-SDL2
mingw-w64-x86_64-SDL2_image
mingw-w64-x86_64-gtk3
mingw-w64-x86_64-glib2
mingw-w64-x86_64-ninja
mingw-w64-x86_64-make
mingw-w64-x86_64-lzo2
mingw-w64-x86_64-zstd
mingw-w64-x86_64-libjpeg-turbo
mingw-w64-x86_64-pixman
mingw-w64-x86_64-libgcrypt
mingw-w64-x86_64-libpng
mingw-w64-x86_64-libssh
mingw-w64-x86_64-libxml2
mingw-w64-x86_64-snappy
mingw-w64-x86_64-libusb
mingw-w64-x86_64-usbredir
mingw-w64-x86_64-libtasn1
mingw-w64-x86_64-nettle
mingw-w64-x86_64-cyrus-sasl
mingw-w64-x86_64-curl
mingw-w64-x86_64-gnutls
mingw-w64-x86_64-zstd"
- |
cd C:\tools
cmd /C "7z x C:\tools\archive\msys2-x86_64.tar.xz -so | 7z x -aoa -simsys2-x86_64.tar -ttar -omsys64"
C:\tools\msys64\usr\bin\bash.exe -lc "export"
script:
- C:\tools\msys64\usr\bin\bash.exe -lc "mkdir build"
- C:\tools\msys64\usr\bin\bash.exe -lc "cd build && ../configure
--python=python3 --ninja=ninja
--target-list-exclude=i386-softmmu,arm-softmmu,ppc-softmmu,mips-softmmu"
- C:\tools\msys64\usr\bin\bash.exe -lc "cd build && make -j$NUMBER_OF_PROCESSORS"
- C:\tools\msys64\usr\bin\bash.exe -lc "cd build && make -j8"
test_script:
- C:\tools\msys64\usr\bin\bash.exe -lc "cd build && make V=1 check"