|
| 1 | +#*************************************************************************** |
| 2 | +# _ _ ____ _ |
| 3 | +# Project ___| | | | _ \| | |
| 4 | +# / __| | | | |_) | | |
| 5 | +# | (__| |_| | _ <| |___ |
| 6 | +# \___|\___/|_| \_\_____| |
| 7 | +# |
| 8 | +# Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al. |
| 9 | +# |
| 10 | +# This software is licensed as described in the file COPYING, which |
| 11 | +# you should have received as part of this distribution. The terms |
| 12 | +# are also available at https://curl.se/docs/copyright.html. |
| 13 | +# |
| 14 | +# You may opt to use, copy, modify, merge, publish, distribute and/or sell |
| 15 | +# copies of the Software, and permit persons to whom the Software is |
| 16 | +# furnished to do so, under the terms of the COPYING file. |
| 17 | +# |
| 18 | +# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
| 19 | +# KIND, either express or implied. |
| 20 | +# |
| 21 | +########################################################################### |
| 22 | +# Starter pipeline |
| 23 | +# Start with a minimal pipeline that you can customize to build and deploy your code. |
| 24 | +# Add steps that build, run tests, deploy, and more: |
| 25 | +# https://aka.ms/yaml |
| 26 | + |
| 27 | +trigger: |
| 28 | + branches: |
| 29 | + include: |
| 30 | + - 'master' |
| 31 | + - '*/ci' |
| 32 | + |
| 33 | +pr: |
| 34 | + branches: |
| 35 | + include: |
| 36 | + - 'master' |
| 37 | + |
| 38 | +stages: |
| 39 | + |
| 40 | +########################################## |
| 41 | +### Linux jobs first |
| 42 | +########################################## |
| 43 | + |
| 44 | +- stage: linux |
| 45 | + dependsOn: [] |
| 46 | + jobs: |
| 47 | + - job: ubuntu |
| 48 | + # define defaults to make sure variables are always expanded/replaced |
| 49 | + variables: |
| 50 | + install: '' |
| 51 | + configure: '' |
| 52 | + tests: '!433' |
| 53 | + timeoutInMinutes: 60 |
| 54 | + pool: |
| 55 | + vmImage: 'ubuntu-latest' |
| 56 | + strategy: |
| 57 | + matrix: |
| 58 | + default: |
| 59 | + name: default |
| 60 | + install: jsonlint |
| 61 | + configure: --enable-debug --with-openssl |
| 62 | + disable_ipv6: |
| 63 | + name: w/o IPv6 |
| 64 | + configure: --disable-ipv6 --with-openssl |
| 65 | + disable_http_smtp_imap: |
| 66 | + name: w/o HTTP/SMTP/IMAP |
| 67 | + configure: --disable-http --disable-smtp --disable-imap --without-ssl |
| 68 | + disable_thredres: |
| 69 | + name: sync resolver |
| 70 | + configure: --disable-threaded-resolver --with-openssl |
| 71 | + https_only: |
| 72 | + name: HTTPS only |
| 73 | + configure: --disable-dict --disable-file --disable-ftp --disable-gopher --disable-imap --disable-ldap --disable-pop3 --disable-rtmp --disable-rtsp --disable-scp --disable-sftp --disable-smb --disable-smtp --disable-telnet --disable-tftp --with-openssl |
| 74 | + torture: |
| 75 | + name: torture |
| 76 | + install: libnghttp2-dev |
| 77 | + configure: --enable-debug --disable-shared --disable-threaded-resolver --with-openssl |
| 78 | + tests: -n -t --shallow=40 !FTP |
| 79 | + steps: |
| 80 | + - script: sudo apt-get update && sudo apt-get install -y stunnel4 python3-impacket libzstd-dev libbrotli-dev $(install) |
| 81 | + displayName: 'apt install' |
| 82 | + |
| 83 | + - script: ./buildconf && ./configure --enable-warnings --enable-werror $(configure) |
| 84 | + displayName: 'configure $(name)' |
| 85 | + |
| 86 | + - script: make V=1 && make V=1 examples && cd tests && make V=1 |
| 87 | + displayName: 'compile' |
| 88 | + env: |
| 89 | + MAKEFLAGS: "-j 2" |
| 90 | + |
| 91 | + - script: make V=1 test-ci |
| 92 | + displayName: 'test' |
| 93 | + env: |
| 94 | + AZURE_ACCESS_TOKEN: "$(System.AccessToken)" |
| 95 | + TFLAGS: "-r $(tests)" |
| 96 | + |
| 97 | +########################################## |
| 98 | +### Windows jobs below |
| 99 | +########################################## |
| 100 | + |
| 101 | +- stage: windows |
| 102 | + dependsOn: [] |
| 103 | + variables: |
| 104 | + agent.preferPowerShellOnContainers: true |
| 105 | + jobs: |
| 106 | + - job: windows |
| 107 | + # define defaults to make sure variables are always expanded/replaced |
| 108 | + variables: |
| 109 | + container_img: '' |
| 110 | + container_cmd: '' |
| 111 | + configure: '' |
| 112 | + tests: '' |
| 113 | + timeoutInMinutes: 120 |
| 114 | + pool: |
| 115 | + vmImage: 'windows-2019' |
| 116 | + strategy: |
| 117 | + matrix: |
| 118 | + msys2_mingw32_debug_openssl: |
| 119 | + name: 32-bit OpenSSL/libssh2 |
| 120 | + container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019 |
| 121 | + container_cmd: C:\msys64\usr\bin\sh |
| 122 | + prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-i686-libssh2 |
| 123 | + configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --with-libssh2 --with-openssl |
| 124 | + tests: "~571" |
| 125 | + msys2_mingw64_debug_openssl: |
| 126 | + name: 64-bit OpenSSL/libssh2 |
| 127 | + container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019 |
| 128 | + container_cmd: C:\msys64\usr\bin\sh |
| 129 | + prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-x86_64-libssh2 |
| 130 | + configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --with-libssh2 --with-openssl |
| 131 | + tests: "~571" |
| 132 | + msys1_mingw_debug: |
| 133 | + name: 32-bit (legacy) |
| 134 | + container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys1-mingw:ltsc2019 |
| 135 | + container_cmd: C:\MinGW\msys\1.0\bin\sh |
| 136 | + configure: --host=i686-pc-mingw32 --build=i686-pc-mingw32 --prefix=/mingw --enable-debug --without-ssl |
| 137 | + tests: "!203 !1143" |
| 138 | + msys1_mingw32_debug: |
| 139 | + name: 32-bit w/o zlib |
| 140 | + container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys1-mingw32:ltsc2019 |
| 141 | + container_cmd: C:\MinGW\msys\1.0\bin\sh |
| 142 | + configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --without-zlib --without-ssl |
| 143 | + tests: "!203 !1143" |
| 144 | + msys1_mingw64_debug: |
| 145 | + name: 64-bit w/o zlib |
| 146 | + container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys1-mingw64:ltsc2019 |
| 147 | + container_cmd: C:\MinGW\msys\1.0\bin\sh |
| 148 | + configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --without-zlib --without-ssl |
| 149 | + tests: "!203 !1143" |
| 150 | + msys2_mingw32_debug_schannel: |
| 151 | + name: 32-bit Schannel/SSPI/WinIDN/libssh2 |
| 152 | + container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019 |
| 153 | + container_cmd: C:\msys64\usr\bin\sh |
| 154 | + prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-i686-libssh2 |
| 155 | + configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --with-libssh2 |
| 156 | + tests: "~571" |
| 157 | + msys2_mingw64_debug_schannel: |
| 158 | + name: 64-bit Schannel/SSPI/WinIDN/libssh2 |
| 159 | + container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019 |
| 160 | + container_cmd: C:\msys64\usr\bin\sh |
| 161 | + prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-x86_64-libssh2 |
| 162 | + configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --with-libssh2 |
| 163 | + tests: "~571" |
| 164 | + msys1_mingw_debug_schannel: |
| 165 | + name: 32-bit Schannel/SSPI/WinIDN (legacy) |
| 166 | + container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys1-mingw:ltsc2019 |
| 167 | + container_cmd: C:\MinGW\msys\1.0\bin\sh |
| 168 | + configure: --host=i686-pc-mingw32 --build=i686-pc-mingw32 --prefix=/mingw --enable-debug --enable-sspi --with-schannel --with-winidn |
| 169 | + tests: "!203 !305 !311 !312 !313 !404 !1143 !2033 !2035 !2038 !2041 !2042 !2048 !2070 !2079 !2087 !3023 !3024" |
| 170 | + msys1_mingw32_debug_schannel: |
| 171 | + name: 32-bit Schannel/SSPI/WinIDN w/o zlib |
| 172 | + container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys1-mingw32:ltsc2019 |
| 173 | + container_cmd: C:\MinGW\msys\1.0\bin\sh |
| 174 | + configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --without-zlib |
| 175 | + tests: "!203 !1143" |
| 176 | + msys1_mingw64_debug_schannel: |
| 177 | + name: 64-bit Schannel/SSPI/WinIDN w/o zlib |
| 178 | + container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys1-mingw64:ltsc2019 |
| 179 | + container_cmd: C:\MinGW\msys\1.0\bin\sh |
| 180 | + configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --without-zlib |
| 181 | + tests: "!203 !1143" |
| 182 | + container: |
| 183 | + image: $(container_img) |
| 184 | + env: |
| 185 | + MSYS2_PATH_TYPE: inherit |
| 186 | + steps: |
| 187 | + - script: $(container_cmd) -l -c "cd $(echo '%cd%') && $(prepare)" |
| 188 | + displayName: 'prepare' |
| 189 | + condition: variables.prepare |
| 190 | + |
| 191 | + - script: $(container_cmd) -l -c "cd $(echo '%cd%') && ./buildconf && ./configure $(configure)" |
| 192 | + displayName: 'configure $(name)' |
| 193 | + |
| 194 | + - script: $(container_cmd) -l -c "cd $(echo '%cd%') && make V=1 && make V=1 examples && cd tests && make V=1" |
| 195 | + displayName: 'compile' |
| 196 | + env: |
| 197 | + MAKEFLAGS: "-j 2" |
| 198 | + |
| 199 | + - script: $(container_cmd) -l -c "cd $(echo '%cd%') && make V=1 install && PATH=/usr/bin:/bin find . -type f -path '*/.libs/*.exe' -print -execdir mv -t .. {} \;" |
| 200 | + displayName: 'install' |
| 201 | + |
| 202 | + - script: $(container_cmd) -l -c "cd $(echo '%cd%') && make V=1 test-ci" |
| 203 | + displayName: 'test' |
| 204 | + env: |
| 205 | + AZURE_ACCESS_TOKEN: "$(System.AccessToken)" |
| 206 | + TFLAGS: "!IDN !SCP ~612 ~1056 $(tests)" |
0 commit comments