diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..5bac5f5 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,72 @@ +name: CI + +on: + push: + branches: [master] + pull_request: + branches: [master] + +permissions: + contents: read + +jobs: + test: + name: nginx 1.31.4 + runs-on: ubuntu-22.04 + timeout-minutes: 45 + + steps: + - name: Checkout + uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 + + - name: Install system dependencies + run: | + sudo apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + axel \ + build-essential \ + ca-certificates \ + cpanminus \ + git \ + wget + + - name: Build and test + env: + CC: gcc + NGINX_VERSION: 1.31.4 + run: | + set -e + mkdir -p download-cache + export JOBS=3 + export LUAJIT_PREFIX=/opt/luajit21 + export LUAJIT_LIB=$LUAJIT_PREFIX/lib + export LUAJIT_INC=$LUAJIT_PREFIX/include/luajit-2.1 + export LD_LIBRARY_PATH=$LUAJIT_LIB:$LD_LIBRARY_PATH + export PCRE_PREFIX=/usr/local/openresty/pcre2 + export PCRE_LIB=$PCRE_PREFIX/lib + export PCRE_INC=$PCRE_PREFIX/include + sudo apt-get update -y + sudo apt-get install -y ca-certificates + sudo cpanm --notest Test::Nginx IPC::Run Test2::Util > build.log 2>&1 || (cat build.log && exit 1) + sudo cpanm -v --notest Test::Nginx > build.log 2>&1 || (cat build.log && exit 1) + wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add - + echo "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/openresty.list + sudo apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends openresty-pcre2 openresty-openssl3 openresty-pcre2-dev openresty-openssl3-dev + git clone https://github.com/openresty/echo-nginx-module.git ../echo-nginx-module + git clone https://github.com/openresty/lua-nginx-module.git ../lua-nginx-module + git clone https://github.com/openresty/lua-resty-core.git ../lua-resty-core + git clone https://github.com/openresty/lua-resty-lrucache.git ../lua-resty-lrucache + git clone https://github.com/openresty/nginx-eval-module.git ../eval-nginx-module + git clone https://github.com/openresty/openresty.git ../openresty + git clone https://github.com/openresty/no-pool-nginx.git ../no-pool-nginx + git clone https://github.com/openresty/nginx-devel-utils.git + git clone -b v2.1-agentzh https://github.com/openresty/luajit2.git luajit2 + cd luajit2/ + 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) + sudo make install PREFIX=$LUAJIT_PREFIX > build.log 2>&1 || (cat build.log && exit 1) + cd .. + export PATH=$PWD/work/nginx/sbin:$PWD/nginx-devel-utils:$PATH + export NGX_BUILD_CC=$CC + sh util/build.sh $NGINX_VERSION > build.log 2>&1 || (cat build.log && exit 1) + prove -I. -r t diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 600393e..0000000 --- a/.travis.yml +++ /dev/null @@ -1,65 +0,0 @@ -sudo: required -dist: focal - -branches: - only: - - "master" - -os: linux - -language: c - -compiler: - - gcc - -addons: - apt: - packages: - - axel - - cpanminus - -env: - global: - - LUAJIT_PREFIX=/opt/luajit21 - - LUAJIT_LIB=$LUAJIT_PREFIX/lib - - LUAJIT_INC=$LUAJIT_PREFIX/include/luajit-2.1 - - LD_LIBRARY_PATH=$LUAJIT_LIB:$LD_LIBRARY_PATH - - PCRE_PREFIX=/usr/local/openresty/pcre2 - - PCRE_LIB=$PCRE_PREFIX/lib - - PCRE_INC=$PCRE_PREFIX/include - matrix: - - NGINX_VERSION=1.31.3 - -before_install: - - sudo apt-get update -y - - sudo apt-get install -y ca-certificates - - sudo cpanm --notest Test::Nginx IPC::Run Test2::Util > build.log 2>&1 || (cat build.log && exit 1) - - sudo cpanm -v --notest Test::Nginx > build.log 2>&1 || (cat build.log && exit 1) - - wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add - - - echo "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/openresty.list - - sudo apt-get update - - sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends openresty-pcre2 openresty-openssl3 openresty-pcre2-dev openresty-openssl3-dev - -install: - - git clone https://github.com/openresty/echo-nginx-module.git ../echo-nginx-module - - git clone https://github.com/openresty/lua-nginx-module.git ../lua-nginx-module - - git clone https://github.com/openresty/lua-resty-core.git ../lua-resty-core - - git clone https://github.com/openresty/lua-resty-lrucache.git ../lua-resty-lrucache - - git clone https://github.com/openresty/nginx-eval-module.git ../eval-nginx-module - - git clone https://github.com/openresty/openresty.git ../openresty - - git clone https://github.com/openresty/no-pool-nginx.git ../no-pool-nginx - - git clone https://github.com/openresty/nginx-devel-utils.git - - git clone -b v2.1-agentzh https://github.com/openresty/luajit2.git luajit2 - -before_script: - - cd luajit2/ - - 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) - - sudo make install PREFIX=$LUAJIT_PREFIX > build.log 2>&1 || (cat build.log && exit 1) - - cd .. - -script: - - export PATH=$PWD/work/nginx/sbin:$PWD/nginx-devel-utils:$PATH - - export NGX_BUILD_CC=$CC - - sh util/build.sh $NGINX_VERSION > build.log 2>&1 || (cat build.log && exit 1) - - - prove -I. -r t diff --git a/t/input.t b/t/input.t index f1afc90..cb635d8 100644 --- a/t/input.t +++ b/t/input.t @@ -355,7 +355,7 @@ empty_header: --- more_headers User-Agent: my-sock --- response_body eval -$Test::Nginx::Util::NginxVersion < 1.029008 ? +($Test::Nginx::Util::NginxVersion < 1.029008 || $Test::Nginx::Util::NginxVersion >= 1.031004) ? "GET /proxy HTTP/1.0\r Host: 127.0.0.1:\$ServerPort\r Connection: close\r @@ -386,7 +386,7 @@ Host: 127.0.0.1:\$ServerPort\r --- request GET /foo --- response_body eval -$Test::Nginx::Util::NginxVersion < 1.029008 ? +($Test::Nginx::Util::NginxVersion < 1.029008 || $Test::Nginx::Util::NginxVersion >= 1.031004) ? "GET /proxy HTTP/1.0\r Host: 127.0.0.1:\$ServerPort\r Connection: close\r @@ -426,7 +426,7 @@ for my $i (3..21) { $s; --- response_body eval -my $comm_header = $Test::Nginx::Util::NginxVersion < 1.029008 ? +my $comm_header = ($Test::Nginx::Util::NginxVersion < 1.029008 || $Test::Nginx::Util::NginxVersion >= 1.031004) ? "Host: 127.0.0.1:\$ServerPort\r\nConnection: close\r" : "Connection: close\r\nHost: 127.0.0.1:\$ServerPort\r"; "GET /proxy HTTP/1.0\r @@ -574,7 +574,7 @@ hello world Content-Type: application/ocsp-request Test-Header: 1 --- response_body_like eval -if ($Test::Nginx::Util::NginxVersion < 1.029008) { +if ($Test::Nginx::Util::NginxVersion < 1.029008 || $Test::Nginx::Util::NginxVersion >= 1.031004) { qr/Connection: close\r Test-Header: 1\r \r @@ -685,7 +685,7 @@ for my $i ('a' .. 'r') { } $s --- response_body eval -my $comm_header = $Test::Nginx::Util::NginxVersion < 1.029008 ? +my $comm_header = ($Test::Nginx::Util::NginxVersion < 1.029008 || $Test::Nginx::Util::NginxVersion >= 1.031004) ? "Host: foo\r\nConnection: close\r" : "Connection: close\r\nHost: foo\r"; "GET /back HTTP/1.0\r $comm_header @@ -741,7 +741,7 @@ for my $i ('a' .. 'r') { } $s --- response_body eval -my $comm_header = $Test::Nginx::Util::NginxVersion < 1.029008 ? +my $comm_header = ($Test::Nginx::Util::NginxVersion < 1.029008 || $Test::Nginx::Util::NginxVersion >= 1.031004) ? "Host: foo\r\nConnection: close\r" : "Connection: close\r\nHost: foo\r"; "GET /back HTTP/1.0\r $comm_header @@ -812,7 +812,7 @@ for my $i ('a' .. 'r') { } $s --- response_body eval -my $comm_header = $Test::Nginx::Util::NginxVersion < 1.029008 ? +my $comm_header = ($Test::Nginx::Util::NginxVersion < 1.029008 || $Test::Nginx::Util::NginxVersion >= 1.031004) ? "Host: foo\r\nConnection: close\r" : "Connection: close\r\nHost: foo\r"; "GET /back HTTP/1.0\r $comm_header