forked from fffonion/lua-resty-openssl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
105 lines (97 loc) · 5.38 KB
/
.travis.yml
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
sudo: required
dist: focal
os: linux
arch:
- amd64
language: c
compiler:
- gcc
cache:
directories:
- cache
- /tmp/ssl
- /tmp/luajit21
env:
global:
- JOBS=3
- SH=bash
- NGX_BUILD_JOBS=$JOBS
- LUAJIT_PREFIX=/tmp/luajit21
- LUAJIT_LIB=$LUAJIT_PREFIX/lib
- LUAJIT_INC=$LUAJIT_PREFIX/include/luajit-2.1
- LUA_INCLUDE_DIR=$LUAJIT_INC
- OPENSSL_PREFIX=/tmp/ssl
- OPENSSL_LIB=$OPENSSL_PREFIX/lib
- OPENSSL_INC=$OPENSSL_PREFIX/include
- LD_LIBRARY_PATH=$LUAJIT_LIB:$LD_LIBRARY_PATH
- TEST_NGINX_SLEEP=0.005
- TEST_NGINX_RANDOMIZE=1
- LUACHECK_VER=0.21.1
matrix:
include:
# valgrind
# - env: NGINX_VERSION=1.15.8 OPENSSL_VER=1.1.1i APT_PACKAGES=valgrind NGINX_CC_OPTS=-O0 LUAJIT_CC_OPTS="-DLUAJIT_NUMMODE=2 -DLUAJIT_USE_VALGRIND -DLUAJIT_USE_SYSMALLOC -O0" TEST_NGINX_ENV="TEST_NGINX_USE_VALGRIND=1 TEST_NGINX_TIMEOUT=60 TEST_NGINX_SLEEP=1"
- env: NGINX_VERSION=1.15.8 OPENSSL_VER=1.0.2u
- env: NGINX_VERSION=1.15.8 OPENSSL_VER=1.1.1i
- env: NGINX_VERSION=1.17.8 OPENSSL_VER=1.0.2u
- env: NGINX_VERSION=1.17.8 OPENSSL_VER=1.0.2u OPENSSL_FIPS_VER=2.0.16 OPENSSL_OPTS="fips --with-fipsdir=/tmp/ssl/fips"
- env: NGINX_VERSION=1.17.8 OPENSSL_VER=1.1.0l
- env: NGINX_VERSION=1.17.8 OPENSSL_VER=1.1.1i
- env: NGINX_VERSION=1.19.3 OPENSSL_VER=1.0.2u
- env: NGINX_VERSION=1.19.3 OPENSSL_VER=1.1.0l
- env: NGINX_VERSION=1.19.3 OPENSSL_VER=1.1.1i
# openssl 3.0
# add -Wno-error to fix deprecation warnings from openssl
- env: NGINX_VERSION=1.17.8 OPENSSL_VER=3.0.0-alpha8 NGINX_CC_OPTS=-Wno-error
- env: NGINX_VERSION=1.19.3 OPENSSL_VER=3.0.0-alpha8 NGINX_CC_OPTS=-Wno-error
- compiler: clang
env: NGINX_VERSION=1.17.8 OPENSSL_VER=1.1.1i
- arch: arm64
env: NGINX_VERSION=1.17.8 OPENSSL_VER=1.1.1i APT_PACKAGES=libpcre3-dev
install:
- export NGX_BUILD_CC=$CC
- export PATH=$PWD/cache/work/nginx/sbin:$PWD/nginx-devel-utils:$PATH
- sudo apt-get install -qq -y cpanminus axel ca-certificates $APT_PACKAGES
# perl cache
- pushd cache
- if [ ! -e perl ]; then sudo cpanm --notest Test::Nginx > build.log 2>&1 || (cat build.log && exit 1); cp -r /usr/local/share/perl/ .; else sudo cp -r perl /usr/local/share; fi
- popd
- git clone https://github.com/openresty/openresty.git ./openresty
- git clone https://github.com/openresty/nginx-devel-utils.git
- git clone https://github.com/simpl/ngx_devel_kit.git ./ndk-nginx-module
- git clone https://github.com/openresty/lua-nginx-module.git ./lua-nginx-module -b v0.10.17
- git clone https://github.com/openresty/no-pool-nginx.git ./no-pool-nginx
- git clone https://github.com/openresty/lua-resty-core.git ../lua-resty-core -b v0.1.19
- git clone https://github.com/openresty/lua-resty-lrucache.git ../lua-resty-lrucache
- git clone https://github.com/jkeys089/lua-resty-hmac ../lua-resty-hmac && pushd ../lua-resty-hmac && git checkout 79a4929 && popd
- git clone https://github.com/openresty/lua-resty-string ../lua-resty-string
# openssl
# openssl 1.0.2 config doesn't work correctly on a cached directory
- if [ "X$OPENSSL_FIPS_VER" != "X" ]; then wget https://www.openssl.org/source/old/fips/openssl-fips-$OPENSSL_FIPS_VER.tar.gz -O - | tar zxf - ; pushd openssl-fips-$OPENSSL_FIPS_VER/; FIPSDIR=$OPENSSL_PREFIX/fips ./config; make -j1; make install; popd; fi
- if [ "X$OPENSSL_HASH" != "X" ]; then wget https://github.com/openssl/openssl/archive/$OPENSSL_HASH.tar.gz -O - | tar zxf - ; pushd openssl-$OPENSSL_HASH/; fi
- if [ "X$OPENSSL_HASH" = "X" ] ; then wget https://www.openssl.org/source/openssl-$OPENSSL_VER.tar.gz -O - | tar zxf -; pushd openssl-$OPENSSL_VER/; fi
- if [ ! -e $OPENSSL_PREFIX/include ]; then ./config shared --prefix=$OPENSSL_PREFIX -DPURIFY $OPENSSL_OPTS > build.log 2>&1 || (cat build.log && exit 1); fi
- if [ ! -e $OPENSSL_PREFIX/include ]; then make -j$JOBS > build.log 2>&1 || (cat build.log && exit 1); fi
- if [ ! -e $OPENSSL_PREFIX/include ]; then sudo make PATH=$PATH install_sw > build.log 2>&1 || (cat build.log && exit 1); fi
- mkdir -p $OPENSSL_PREFIX/certs/ && cp -r /etc/ssl/certs/* $OPENSSL_PREFIX/certs/
- LD_LIBRARY_PATH=/tmp/ssl/lib /tmp/ssl/bin/openssl version
- popd
- pushd cache
# luajit
- if [ ! -e luajit2 ]; then git clone -b v2.1-agentzh https://github.com/openresty/luajit2.git; fi
- pushd luajit2/
- make -j$JOBS CCDEBUG=-g Q= PREFIX=$LUAJIT_PREFIX CC=$CC XCFLAGS="-DLUA_USE_APICHECK -DLUA_USE_ASSERT -DLUAJIT_ENABLE_LUA52COMPAT $LUAJIT_CC_OPTS" > build.log 2>&1 || (cat build.log && exit 1)
- make install PREFIX=$LUAJIT_PREFIX > build.log 2>&1 || (cat build.log && exit 1)
- popd
# lua-cjson
- if [ ! -e lua-cjson ]; then git clone https://github.com/openresty/lua-cjson.git ./lua-cjson; fi
- pushd ./lua-cjson && make && sudo PATH=$PATH make install && popd
# nginx
- if [ ! -e work ]; then ngx-build $NGINX_VERSION --add-module=../ndk-nginx-module --add-module=../lua-nginx-module --with-http_ssl_module --with-cc-opt="-I$OPENSSL_INC $NGINX_CC_OPTS" --with-ld-opt="-L$OPENSSL_LIB -Wl,-rpath,$OPENSSL_LIB" --with-debug > build.log 2>&1 || (cat build.log && exit 1); fi
- nginx -V
- ldd `which nginx`|grep -E 'luajit|ssl|pcre'
- popd
script:
- export $TEST_NGINX_ENV A=1
- prove -j$JOBS -r t/ 2>&1 | tee output.log ; test ${PIPESTATUS[0]} -eq 0
- if grep -q 'insert_a_suppression_name_here' output.log; then echo "Valgrind found problems"; exit 1; else echo "All good"; fi