mirror of https://github.com/alibaba/tengine.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
4.7 KiB
121 lines
4.7 KiB
name: test tengine
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
build-and-test:
|
|
runs-on: "ubuntu-20.04"
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler:
|
|
- { compiler: GNU, CC: gcc, CXX: g++}
|
|
- { compiler: LLVM, CC: clang, CXX: clang++}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: get dependencies
|
|
run: |
|
|
sudo apt update
|
|
sudo apt remove nginx libgd3
|
|
sudo apt install -y libgd-dev libgeoip-dev libxslt1-dev libpcre++0v5 libpcre++-dev liblua5.1-0-dev lua5.1 libperl-dev cpanminus libssl-dev
|
|
- name: 'checkout luajit2'
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: openresty/luajit2
|
|
path: luajit2
|
|
- name: 'build luajit2'
|
|
working-directory: luajit2
|
|
run: |
|
|
make
|
|
sudo make install
|
|
- name: 'checkout lua-resty-lrucache'
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: openresty/lua-resty-lrucache
|
|
path: lua-resty-lrucache
|
|
- name: 'build lua-resty-lrucache'
|
|
working-directory: lua-resty-lrucache
|
|
run: |
|
|
sudo make install
|
|
- name: 'checkout lua-resty-core'
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: openresty/lua-resty-core
|
|
path: lua-resty-core
|
|
- name: 'build lua-resty-core'
|
|
working-directory: lua-resty-core
|
|
run: |
|
|
sudo make install
|
|
|
|
# TODO: fix tests so they don't depend on /usr/local/nginx/logs/
|
|
# so we can run `make`, `make test`, `make install`.
|
|
|
|
- name: build
|
|
env:
|
|
CC: ${{ matrix.compiler.CC }}
|
|
CXX: ${{ matrix.compiler.CXX }}
|
|
LUAJIT_LIB: /usr/local/lib
|
|
LUAJIT_INC: /usr/local/include/luajit-2.1
|
|
run: |
|
|
./configure \
|
|
--with-debug \
|
|
--with-ld-opt="-Wl,-lpcre,-rpath,/usr/local/lib" \
|
|
--with-ipv6 \
|
|
--with-openssl-async \
|
|
--with-http_ssl_module \
|
|
--with-http_v2_module \
|
|
--with-http_addition_module \
|
|
--with-stream \
|
|
--with-stream_ssl_module \
|
|
--with-stream_realip_module \
|
|
--with-stream_geoip_module \
|
|
--with-stream_ssl_preread_module \
|
|
--with-stream_sni \
|
|
--add-module=./modules/ngx_backtrace_module \
|
|
--add-module=./modules/ngx_debug_pool \
|
|
--add-module=./modules/ngx_debug_timer \
|
|
--add-module=./modules/ngx_debug_conn \
|
|
--add-module=./modules/ngx_http_concat_module \
|
|
--add-module=./modules/ngx_http_footer_filter_module \
|
|
--add-module=./modules/ngx_http_lua_module \
|
|
--add-module=./modules/ngx_http_proxy_connect_module \
|
|
--add-module=./modules/ngx_http_reqstat_module \
|
|
--add-module=./modules/ngx_http_slice_module \
|
|
--add-module=./modules/ngx_http_sysguard_module \
|
|
--add-module=./modules/ngx_http_trim_filter_module \
|
|
--add-module=./modules/ngx_http_upstream_check_module \
|
|
--add-module=./modules/ngx_http_upstream_consistent_hash_module \
|
|
--add-module=./modules/ngx_http_upstream_dynamic_module \
|
|
--add-module=./modules/ngx_http_upstream_dyups_module \
|
|
--add-module=./modules/ngx_http_upstream_iwrr_module \
|
|
--add-module=./modules/ngx_http_upstream_keepalive_module \
|
|
--add-module=./modules/ngx_http_upstream_session_sticky_module \
|
|
--add-module=./modules/ngx_http_upstream_vnswrr_module \
|
|
--add-module=./modules/ngx_http_user_agent_module \
|
|
--add-module=./modules/ngx_multi_upstream_module \
|
|
--add-module=./modules/ngx_slab_stat \
|
|
--without-http_upstream_keepalive_module
|
|
make -j2
|
|
sudo make install
|
|
- name: tengine test cases using nginx-tests lib
|
|
working-directory: tests/nginx-tests
|
|
env:
|
|
TEST_NGINX_BINARY: /usr/local/nginx/sbin/nginx
|
|
run: |
|
|
sudo cpanm --notest Net::DNS::Nameserver > build.log 2>&1 || (cat build.log && exit 1)
|
|
prove -v -Inginx-tests/lib tengine-tests/
|
|
prove -v -Inginx-tests/lib ../../modules/ngx_http_proxy_connect_module/t
|
|
prove -v -Inginx-tests/lib ../../modules/ngx_debug_timer/t
|
|
prove -v -Inginx-tests/lib ../../modules/ngx_debug_conn/t
|
|
prove -v -Inginx-tests/lib ../../modules/ngx_slab_stat/t
|
|
- name: tengine test cases using test-nginx lib
|
|
working-directory: tests/test-nginx
|
|
run: |
|
|
sudo cpanm --notest Shell Test::Base Test::LongString List::MoreUtils LWP::UserAgent HTTP::Response > build.log 2>&1 || (cat build.log && exit 1)
|
|
mkdir t
|
|
PATH=/usr/local/nginx/sbin:$PATH \
|
|
prove -v -Itest-nginx/lib cases/
|