aboutsummaryrefslogtreecommitdiff
path: root/.cirrus.yml
blob: 3907e036dab81c10ac653cfe19011c40d1e5a00a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
env:
  CIRRUS_CLONE_DEPTH: 1

freebsd_12_task:
  freebsd_instance:
    image_family: freebsd-12-1
    cpu: 8
    memory: 8G
  install_script:
    - ASSUME_ALWAYS_YES=yes pkg bootstrap -f ;
    - pkg install -y bash curl cyrus-sasl git glib gmake gnutls gsed
          nettle perl5 pixman pkgconf png usbredir ninja
  script:
    - mkdir build
    - cd build
    - ../configure --enable-werror || { cat config.log meson-logs/meson-log.txt; exit 1; }
    - gmake -j$(sysctl -n hw.ncpu)
    - gmake -j$(sysctl -n hw.ncpu) check V=1

macos_task:
  osx_instance:
    image: catalina-base
  install_script:
    - brew install pkg-config python gnu-sed glib pixman make sdl2 bash ninja
  script:
    - mkdir build
    - cd build
    - ../configure --python=/usr/local/bin/python3 --enable-werror
                   --extra-cflags='-Wno-error=deprecated-declarations'
                   || { cat config.log meson-logs/meson-log.txt; exit 1; }
    - gmake -j$(sysctl -n hw.ncpu)
    - gmake check-unit V=1
    - gmake check-block V=1
    - gmake check-qapi-schema V=1
    - gmake check-softfloat V=1
    - gmake check-qtest-x86_64 V=1

macos_xcode_task:
  osx_instance:
    # this is an alias for the latest Xcode
    image: catalina-xcode
  install_script:
    - brew install pkg-config gnu-sed glib pixman make sdl2 bash ninja
  script:
    - mkdir build
    - cd build
    - ../configure --extra-cflags='-Wno-error=deprecated-declarations' --enable-modules
                   --enable-werror --cc=clang || { cat config.log meson-logs/meson-log.txt; exit 1; }
    - gmake -j$(sysctl -n hw.ncpu)
    - gmake check-unit V=1
    - gmake check-block V=1
    - gmake check-qapi-schema V=1
    - gmake check-softfloat V=1
    - gmake check-qtest-x86_64 V=1

windows_msys2_task:
  timeout_in: 90m
  windows_container:
    image: cirrusci/windowsservercore:2019
    os_version: 2019
    cpu: 8
    memory: 8G
  env:
    CIRRUS_SHELL: powershell
    MSYS: winsymlinks:nativestrict
    MSYSTEM: MINGW64
    CHERE_INVOKING: 1
  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\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-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 \
          mingw-w64-x86_64-libnfs \
          "
        bitsadmin /transfer msys_download /dynamic /download /priority FOREGROUND `
          https://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-python-sphinx-2.3.1-1-any.pkg.tar.xz `
          C:\tools\mingw-w64-x86_64-python-sphinx-2.3.1-1-any.pkg.tar.xz
        C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -U /c/tools/mingw-w64-x86_64-python-sphinx-2.3.1-1-any.pkg.tar.xz"
        del C:\tools\mingw-w64-x86_64-python-sphinx-2.3.1-1-any.pkg.tar.xz
        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:
    - |
      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"
    - 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"