From 016ae9cb8b75b269ef28cf7689b49befd5d7154a Mon Sep 17 00:00:00 2001 From: lijunlong Date: Mon, 24 Aug 2026 13:02:52 +0800 Subject: [PATCH 1/4] tests: update nginx to 1.31.4 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index aed0f64..5386b28 100644 --- a/.travis.yml +++ b/.travis.yml @@ -44,7 +44,7 @@ env: - TEST_NGINX_SLEEP=0.006 - MEMCACHED_VERSION=1.6.10 matrix: - - NGINX_VERSION=1.31.3 + - NGINX_VERSION=1.31.4 install: - wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add - From 74bea0e99e2138218203a39ae8ac641f93954d9a Mon Sep 17 00:00:00 2001 From: lijunlong Date: Mon, 24 Aug 2026 13:35:06 +0800 Subject: [PATCH 2/4] ci: migrate Travis CI to GitHub Actions --- .github/workflows/ci.yml | 97 ++++++++++++++++++++++++++++++++++++++++ .travis.yml | 87 ----------------------------------- 2 files changed, 97 insertions(+), 87 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..5de70e4 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,97 @@ +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@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 + + - name: Install system dependencies + run: | + sudo apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + build-essential \ + ca-certificates \ + cpanminus \ + git \ + libevent-dev \ + libssl-dev \ + memcached \ + net-tools \ + pkg-config \ + psmisc \ + time \ + wget + + - name: Build and test + env: + CC: gcc + NGINX_VERSION: 1.31.4 + run: | + set -e + mkdir -p download-cache + export JOBS=3 + export NGX_BUILD_JOBS=$JOBS + export LUAJIT_PREFIX=/opt/luajit21 + export LUAJIT_LIB=$LUAJIT_PREFIX/lib + export LUAJIT_INC=$LUAJIT_PREFIX/include/luajit-2.1 + export LUA_INCLUDE_DIR=$LUAJIT_INC + export LUA_CMODULE_DIR=/lib + export OPENSSL_PREFIX=/usr/local/openresty/openssl3 + export OPENSSL_LIB=$OPENSSL_PREFIX/lib + export OPENSSL_INC=$OPENSSL_PREFIX/include + export PCRE_PREFIX=/usr/local/openresty/pcre2 + export PCRE_LIB=$PCRE_PREFIX/lib + export PCRE_INC=$PCRE_PREFIX/include + export LD_LIBRARY_PATH=$LUAJIT_LIB:$LD_LIBRARY_PATH + export TEST_NGINX_SLEEP=0.006 + export MEMCACHED_VERSION=1.6.10 + 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 + if [ ! -d download-cache ]; then mkdir download-cache; fi + wget https://memcached.org/files/memcached-${MEMCACHED_VERSION}.tar.gz + sudo apt-get install -qq -y axel + cpanm --sudo --notest Test::Nginx IPC::Run Test2::Util > build.log 2>&1 || (cat build.log && exit 1) + wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz + 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 + 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/echo-nginx-module.git ../echo-nginx-module + git clone https://github.com/openresty/no-pool-nginx.git ../no-pool-nginx + git clone -b v2.1-agentzh https://github.com/openresty/luajit2.git + git clone https://github.com/openresty/mockeagain.git + tar -xf memcached-${MEMCACHED_VERSION}.tar.gz + cd memcached-${MEMCACHED_VERSION} && ./configure --enable-tls && make && sudo make install && cd .. + sudo /usr/local/bin/memcached -u nobody -d -o track_sizes -U 11211 -p 11211 -l 127.0.0.1 + sudo /usr/local/bin/memcached -u nobody -d -Z -o track_sizes -o ssl_chain_cert=./t/cert/server.crt -o ssl_key=./t/cert/server.key -p 11212 -l 127.0.0.1 + cd luajit2/ + make -j$JOBS CCDEBUG=-g Q= PREFIX=$LUAJIT_PREFIX CC=$CC XCFLAGS='-DLUA_USE_APICHECK -DLUA_USE_ASSERT' > 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 ../mockeagain/ && make CC=$CC -j$JOBS && cd .. + export PATH=$PWD/work/nginx/sbin:$PWD/nginx-devel-utils:/usr/local/bin:$PATH + export LD_PRELOAD=$PWD/mockeagain/mockeagain.so + export LD_LIBRARY_PATH=$PWD/mockeagain:$LD_LIBRARY_PATH + export TEST_NGINX_RESOLVER=8.8.4.4 + export NGX_BUILD_CC=$CC + ngx-build $NGINX_VERSION --with-ipv6 --with-http_realip_module --with-http_ssl_module --with-cc-opt="-I$PCRE_INC -I$OPENSSL_INC" --with-ld-opt="-L$PCRE_LIB -L$OPENSSL_LIB -Wl,-rpath,$PCRE_LIB:$OPENSSL_LIB" --add-module=../ndk-nginx-module --add-module=../lua-nginx-module --add-module=../echo-nginx-module --with-debug > build.log 2>&1 || (cat build.log && exit 1) + nginx -V; memcached -V; + ldd `which nginx`|grep -E 'luajit|ssl|pcre' + prove -r t diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 5386b28..0000000 --- a/.travis.yml +++ /dev/null @@ -1,87 +0,0 @@ -sudo: required -dist: focal - -branches: - only: - - "master" - -os: linux - -language: c - -compiler: - - gcc - -addons: - apt: - packages: - - memcached - - time - - psmisc - - net-tools - - libevent-dev - -cache: - directories: - - download-cache - -env: - global: - - JOBS=3 - - NGX_BUILD_JOBS=$JOBS - - LUAJIT_PREFIX=/opt/luajit21 - - LUAJIT_LIB=$LUAJIT_PREFIX/lib - - LUAJIT_INC=$LUAJIT_PREFIX/include/luajit-2.1 - - LUA_INCLUDE_DIR=$LUAJIT_INC - - LUA_CMODULE_DIR=/lib - - OPENSSL_PREFIX=/usr/local/openresty/openssl3 - - OPENSSL_LIB=$OPENSSL_PREFIX/lib - - OPENSSL_INC=$OPENSSL_PREFIX/include - - PCRE_PREFIX=/usr/local/openresty/pcre2 - - PCRE_LIB=$PCRE_PREFIX/lib - - PCRE_INC=$PCRE_PREFIX/include - - LD_LIBRARY_PATH=$LUAJIT_LIB:$LD_LIBRARY_PATH - - TEST_NGINX_SLEEP=0.006 - - MEMCACHED_VERSION=1.6.10 - matrix: - - NGINX_VERSION=1.31.4 - -install: - - 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 - - if [ ! -d download-cache ]; then mkdir download-cache; fi - - wget https://memcached.org/files/memcached-${MEMCACHED_VERSION}.tar.gz - - sudo apt-get install -qq -y axel - - cpanm --sudo --notest Test::Nginx IPC::Run Test2::Util > build.log 2>&1 || (cat build.log && exit 1) - - wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz - - 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 - - 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/echo-nginx-module.git ../echo-nginx-module - - git clone https://github.com/openresty/no-pool-nginx.git ../no-pool-nginx - - git clone -b v2.1-agentzh https://github.com/openresty/luajit2.git - - git clone https://github.com/openresty/mockeagain.git - -script: - - tar -xf memcached-${MEMCACHED_VERSION}.tar.gz - - cd memcached-${MEMCACHED_VERSION} && ./configure --enable-tls && make && sudo make install && cd .. - - sudo /usr/local/bin/memcached -u nobody -d -o track_sizes -U 11211 -p 11211 -l 127.0.0.1 - - sudo /usr/local/bin/memcached -u nobody -d -Z -o track_sizes -o ssl_chain_cert=./t/cert/server.crt -o ssl_key=./t/cert/server.key -p 11212 -l 127.0.0.1 - - cd luajit2/ - - make -j$JOBS CCDEBUG=-g Q= PREFIX=$LUAJIT_PREFIX CC=$CC XCFLAGS='-DLUA_USE_APICHECK -DLUA_USE_ASSERT' > 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 ../mockeagain/ && make CC=$CC -j$JOBS && cd .. - - export PATH=$PWD/work/nginx/sbin:$PWD/nginx-devel-utils:/usr/local/bin:$PATH - - export LD_PRELOAD=$PWD/mockeagain/mockeagain.so - - export LD_LIBRARY_PATH=$PWD/mockeagain:$LD_LIBRARY_PATH - - export TEST_NGINX_RESOLVER=8.8.4.4 - - export NGX_BUILD_CC=$CC - - ngx-build $NGINX_VERSION --with-ipv6 --with-http_realip_module --with-http_ssl_module --with-cc-opt="-I$PCRE_INC -I$OPENSSL_INC" --with-ld-opt="-L$PCRE_LIB -L$OPENSSL_LIB -Wl,-rpath,$PCRE_LIB:$OPENSSL_LIB" --add-module=../ndk-nginx-module --add-module=../lua-nginx-module --add-module=../echo-nginx-module --with-debug > build.log 2>&1 || (cat build.log && exit 1) - - nginx -V; memcached -V; - - ldd `which nginx`|grep -E 'luajit|ssl|pcre' - - prove -r t From e9174b87aee6ae95bce23baa03804ce9158b0960 Mon Sep 17 00:00:00 2001 From: lijunlong Date: Mon, 24 Aug 2026 13:40:42 +0800 Subject: [PATCH 3/4] ci: stop system memcached before tests --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5de70e4..c98ea77 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,6 +35,7 @@ jobs: psmisc \ time \ wget + sudo systemctl stop memcached - name: Build and test env: From 195c21554a7456695410b8f874235ef2213018ea Mon Sep 17 00:00:00 2001 From: lijunlong Date: Mon, 24 Aug 2026 15:14:13 +0800 Subject: [PATCH 4/4] ci: update actions for Node.js 24 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c98ea77..28bc477 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 + uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 - name: Install system dependencies run: |