1dist: xenial 2 3os: linux 4 5language: c 6 7compiler: 8 - gcc 9 - clang 10 11addons: 12 apt: 13 packages: 14 - axel 15 - cpanminus 16 - libtest-base-perl 17 - libtext-diff-perl 18 - liburi-perl 19 - libwww-perl 20 - libtest-longstring-perl 21 - liblist-moreutils-perl 22 - libgd-dev 23 24cache: 25 directories: 26 - download-cache 27 28env: 29 global: 30 - JOBS=3 31 - NGX_BUILD_JOBS=$JOBS 32 - LUAJIT_PREFIX=/opt/luajit21 33 - LUAJIT_LIB=$LUAJIT_PREFIX/lib 34 - LUAJIT_INC=$LUAJIT_PREFIX/include/luajit-2.1 35 - LUA_INCLUDE_DIR=$LUAJIT_INC 36 - PCRE_VER=8.44 37 - PCRE_PREFIX=/opt/pcre 38 - PCRE_LIB=$PCRE_PREFIX/lib 39 - PCRE_INC=$PCRE_PREFIX/include 40 - OPENSSL_PREFIX=/opt/ssl 41 - OPENSSL_LIB=$OPENSSL_PREFIX/lib 42 - OPENSSL_INC=$OPENSSL_PREFIX/include 43 - LIBDRIZZLE_PREFIX=/opt/drizzle 44 - LIBDRIZZLE_INC=$LIBDRIZZLE_PREFIX/include/libdrizzle-1.0 45 - LIBDRIZZLE_LIB=$LIBDRIZZLE_PREFIX/lib 46 - LD_LIBRARY_PATH=$LUAJIT_LIB:$LD_LIBRARY_PATH 47 - DRIZZLE_VER=2011.07.21 48 - TEST_NGINX_SLEEP=0.006 49 jobs: 50 - NGINX_VERSION=1.17.8 OPENSSL_VER=1.0.2u OPENSSL_PATCH_VER=1.0.2h 51 - NGINX_VERSION=1.19.3 OPENSSL_VER=1.0.2u OPENSSL_PATCH_VER=1.0.2h 52 - NGINX_VERSION=1.19.3 OPENSSL_VER=1.1.0l OPENSSL_PATCH_VER=1.1.0d 53 - NGINX_VERSION=1.19.3 OPENSSL_VER=1.1.1h OPENSSL_PATCH_VER=1.1.1f 54 55services: 56 - memcached 57 - redis 58 - mysql 59 60before_install: 61 - '! grep -n -P ''(?<=.{80}).+'' --color `find src -name ''*.c''` `find . -name ''*.h''` || (echo "ERROR: Found C source lines exceeding 80 columns." > /dev/stderr; exit 1)' 62 - '! grep -n -P ''\t+'' --color `find src -name ''*.c''` `find . -name ''*.h''` || (echo "ERROR: Cannot use tabs." > /dev/stderr; exit 1)' 63 - sudo cpanm --notest Test::Nginx IPC::Run > build.log 2>&1 || (cat build.log && exit 1) 64 65install: 66 - if [ ! -f download-cache/drizzle7-$DRIZZLE_VER.tar.gz ]; then wget -P download-cache http://openresty.org/download/drizzle7-$DRIZZLE_VER.tar.gz; fi 67 - if [ ! -f download-cache/pcre-$PCRE_VER.tar.gz ]; then wget -P download-cache https://ftp.pcre.org/pub/pcre/pcre-$PCRE_VER.tar.gz; fi 68 - if [ ! -f download-cache/openssl-$OPENSSL_VER.tar.gz ]; then wget -P download-cache https://www.openssl.org/source/openssl-$OPENSSL_VER.tar.gz || wget -P download-cache https://www.openssl.org/source/old/${OPENSSL_VER//[a-z]/}/openssl-$OPENSSL_VER.tar.gz; fi 69 - git clone https://github.com/openresty/test-nginx.git 70 - git clone https://github.com/openresty/openresty.git ../openresty 71 - git clone https://github.com/openresty/no-pool-nginx.git ../no-pool-nginx 72 - git clone https://github.com/openresty/openresty-devel-utils.git 73 - git clone https://github.com/openresty/mockeagain.git 74 - git clone https://github.com/openresty/lua-cjson.git lua-cjson 75 - git clone https://github.com/openresty/lua-upstream-nginx-module.git ../lua-upstream-nginx-module 76 - git clone https://github.com/openresty/echo-nginx-module.git ../echo-nginx-module 77 - git clone https://github.com/openresty/nginx-eval-module.git ../nginx-eval-module 78 - git clone https://github.com/simpl/ngx_devel_kit.git ../ndk-nginx-module 79 - git clone https://github.com/FRiCKLE/ngx_coolkit.git ../coolkit-nginx-module 80 - git clone https://github.com/openresty/headers-more-nginx-module.git ../headers-more-nginx-module 81 - git clone https://github.com/openresty/drizzle-nginx-module.git ../drizzle-nginx-module 82 - git clone https://github.com/openresty/set-misc-nginx-module.git ../set-misc-nginx-module 83 - git clone https://github.com/openresty/memc-nginx-module.git ../memc-nginx-module 84 - git clone https://github.com/openresty/rds-json-nginx-module.git ../rds-json-nginx-module 85 - git clone https://github.com/openresty/srcache-nginx-module.git ../srcache-nginx-module 86 - git clone https://github.com/openresty/redis2-nginx-module.git ../redis2-nginx-module 87 - git clone https://github.com/openresty/lua-resty-core.git ../lua-resty-core 88 - git clone https://github.com/openresty/lua-resty-lrucache.git ../lua-resty-lrucache 89 - git clone https://github.com/openresty/lua-resty-mysql.git ../lua-resty-mysql 90 - git clone https://github.com/openresty/lua-resty-string.git ../lua-resty-string 91 - git clone https://github.com/openresty/stream-lua-nginx-module.git ../stream-lua-nginx-module 92 - git clone -b v2.1-agentzh https://github.com/openresty/luajit2.git luajit2 93 94before_script: 95 - mysql -uroot -e 'create database ngx_test; grant all on ngx_test.* to "ngx_test"@"%" identified by "ngx_test"; flush privileges;' 96 97script: 98 - sudo iptables -I OUTPUT 1 -p udp --dport 10086 -j REJECT 99 - sudo iptables -I OUTPUT -p tcp --dst 127.0.0.2 --dport 12345 -j DROP 100 - sudo iptables -I OUTPUT -p udp --dst 127.0.0.2 --dport 12345 -j DROP 101 - cd luajit2/ 102 - make -j$JOBS CCDEBUG=-g Q= PREFIX=$LUAJIT_PREFIX CC=$CC XCFLAGS='-DLUA_USE_APICHECK -DLUA_USE_ASSERT -msse4.2' > build.log 2>&1 || (cat build.log && exit 1) 103 - sudo make install PREFIX=$LUAJIT_PREFIX > build.log 2>&1 || (cat build.log && exit 1) 104 - cd .. 105 - tar xzf download-cache/drizzle7-$DRIZZLE_VER.tar.gz && cd drizzle7-$DRIZZLE_VER 106 - ./configure --prefix=$LIBDRIZZLE_PREFIX --without-server > build.log 2>&1 || (cat build.log && exit 1) 107 - make libdrizzle-1.0 -j$JOBS > build.log 2>&1 || (cat build.log && exit 1) 108 - sudo make install-libdrizzle-1.0 > build.log 2>&1 || (cat build.log && exit 1) 109 - cd ../mockeagain/ && make CC=$CC -j$JOBS && cd .. 110 - cd lua-cjson/ && make -j$JOBS && sudo make install && cd .. 111 - tar zxf download-cache/pcre-$PCRE_VER.tar.gz 112 - cd pcre-$PCRE_VER/ 113 - ./configure --prefix=$PCRE_PREFIX --enable-jit --enable-utf --enable-unicode-properties > build.log 2>&1 || (cat build.log && exit 1) 114 - make -j$JOBS > build.log 2>&1 || (cat build.log && exit 1) 115 - sudo PATH=$PATH make install > build.log 2>&1 || (cat build.log && exit 1) 116 - cd .. 117 - tar zxf download-cache/openssl-$OPENSSL_VER.tar.gz 118 - cd openssl-$OPENSSL_VER/ 119 - patch -p1 < ../../openresty/patches/openssl-$OPENSSL_PATCH_VER-sess_set_get_cb_yield.patch 120 - ./config shared enable-ssl3 enable-ssl3-method -g --prefix=$OPENSSL_PREFIX -DPURIFY > build.log 2>&1 || (cat build.log && exit 1) 121 - make -j$JOBS > build.log 2>&1 || (cat build.log && exit 1) 122 - sudo make PATH=$PATH install_sw > build.log 2>&1 || (cat build.log && exit 1) 123 - cd .. 124 - export PATH=$PWD/work/nginx/sbin:$PWD/openresty-devel-utils:$PATH 125 - export NGX_BUILD_CC=$CC 126 - sh util/build.sh $NGINX_VERSION > build.log 2>&1 || (cat build.log && exit 1) 127 - nginx -V 128 - ldd `which nginx`|grep -E 'luajit|ssl|pcre' 129 - export LD_PRELOAD=$PWD/mockeagain/mockeagain.so 130 - export LD_LIBRARY_PATH=$PWD/mockeagain:$LD_LIBRARY_PATH 131 - export TEST_NGINX_RESOLVER=8.8.4.4 132 - dig +short myip.opendns.com @resolver1.opendns.com || exit 0 133 - dig +short @$TEST_NGINX_RESOLVER openresty.org || exit 0 134 - dig +short @$TEST_NGINX_RESOLVER agentzh.org || exit 0 135 - prove -Itest-nginx/lib -r t 136