aboutsummaryrefslogtreecommitdiff
path: root/.cirrus.yml
blob: 4895987da4e5fb3ba95db00dda22992de61bf920 (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
env:
  CIRRUS_CLONE_DEPTH: 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:native
    MSYSTEM: MINGW64
    MSYS2_URL: https://github.com/msys2/msys2-installer/releases/download/2022-06-03/msys2-base-x86_64-20220603.sfx.exe
    MSYS2_FINGERPRINT: 0
    MSYS2_PACKAGES: "
      diffutils git grep make pkg-config sed
      mingw-w64-x86_64-python
      mingw-w64-x86_64-python-sphinx
      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-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
    "
    CHERE_INVOKING: 1
  msys2_cache:
    folder: C:\tools\archive
    reupload_on_changes: false
    # These env variables are used to generate fingerprint to trigger the cache procedure
    # If wanna to force re-populate msys2, increase MSYS2_FINGERPRINT
    fingerprint_script:
      - |
        echo $env:CIRRUS_TASK_NAME
        echo $env:MSYS2_URL
        echo $env:MSYS2_FINGERPRINT
        echo $env:MSYS2_PACKAGES
    populate_script:
      - |
        md -Force C:\tools\archive\pkg
        $start_time = Get-Date
        bitsadmin /transfer msys_download /dynamic /download /priority FOREGROUND $env:MSYS2_URL C:\tools\archive\base.exe
        Write-Output "Download time taken: $((Get-Date).Subtract($start_time))"
        cd C:\tools
        C:\tools\archive\base.exe -y
        del -Force C:\tools\archive\base.exe
        Write-Output "Base install time taken: $((Get-Date).Subtract($start_time))"
        $start_time = Get-Date

        ((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 -Syuu --overwrite=*"
        Write-Output "Core install time taken: $((Get-Date).Subtract($start_time))"
        $start_time = Get-Date

        C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S --needed $env:MSYS2_PACKAGES"
        Write-Output "Package install time taken: $((Get-Date).Subtract($start_time))"
        $start_time = Get-Date

        del -Force -ErrorAction SilentlyContinue C:\tools\msys64\etc\mtab
        del -Force -ErrorAction SilentlyContinue C:\tools\msys64\dev\fd
        del -Force -ErrorAction SilentlyContinue C:\tools\msys64\dev\stderr
        del -Force -ErrorAction SilentlyContinue C:\tools\msys64\dev\stdin
        del -Force -ErrorAction SilentlyContinue C:\tools\msys64\dev\stdout
        del -Force -Recurse -ErrorAction SilentlyContinue C:\tools\msys64\var\cache\pacman\pkg
        tar cf C:\tools\archive\msys64.tar -C C:\tools\ msys64

        Write-Output "Package archive time taken: $((Get-Date).Subtract($start_time))"
        del -Force -Recurse -ErrorAction SilentlyContinue c:\tools\msys64 
  install_script:
    - |
      $start_time = Get-Date
      cd C:\tools
      ls C:\tools\archive\msys64.tar
      tar xf C:\tools\archive\msys64.tar
      Write-Output "Extract msys2 time taken: $((Get-Date).Subtract($start_time))"
  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"
    - exit $LastExitCode
  test_script:
    - C:\tools\msys64\usr\bin\bash.exe -lc "cd build && make V=1 check"
    - exit $LastExitCode