From c0bf845527f82784107ab6b248ef552952bcf840 Mon Sep 17 00:00:00 2001 From: idevz Date: Mon, 8 Jul 2019 06:19:52 +0800 Subject: [PATCH 1/6] update Makefile for macosx installation about using luait building deps --- Makefile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 7b6cf63f769e..1405860e97bd 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,8 @@ INST_LUADIR ?= $(INST_PREFIX)/share/lua/5.1 INST_BINDIR ?= /usr/bin INSTALL ?= install UNAME ?= $(shell uname) +OR_EXEC ?= $(shell which openresty) +LUA_JIT_DIR ?= $(shell TMP='./v_tmp' && $(OR_EXEC) -V &>$${TMP} && cat $${TMP} | grep prefix | grep -Eo 'prefix=(.*?)/nginx' | grep -Eo '/.*/' && rm $${TMP})luajit .PHONY: default @@ -23,7 +25,7 @@ help: dev: ./utils/update_nginx_conf_dev.sh ifeq ($(UNAME),Darwin) - luarocks install --lua-dir=/usr/local/openresty/luajit apisix-*.rockspec --tree=deps --only-deps + luarocks install --lua-dir=$(LUA_JIT_DIR) apisix-*.rockspec --tree=deps --only-deps else sudo luarocks install --lua-dir=/usr/local/openresty/luajit apisix-*.rockspec --tree=deps --only-deps endif @@ -52,13 +54,13 @@ init: run: mkdir -p logs mkdir -p /tmp/cores/ - $$(which openresty) -p $$PWD/ + $(OR_EXEC) -p $$PWD/ ### stop: Stop the apisix server .PHONY: stop stop: - $$(which openresty) -p $$PWD/ -s stop + $(OR_EXEC) -p $$PWD/ -s stop ### clean: Remove generated files @@ -70,7 +72,7 @@ clean: ### reload: Reload the apisix server .PHONY: reload reload: - $$(which openresty) -p $$PWD/ -s reload + $(OR_EXEC) -p $$PWD/ -s reload ### install: Install the apisix From 2fb0a48e43cf93ff5717183964260e5d103868af Mon Sep 17 00:00:00 2001 From: idevz Date: Mon, 8 Jul 2019 16:58:26 +0800 Subject: [PATCH 2/6] update .gitignore to exclude nginx's tmp dirs --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index 8b9cd5883991..14cd71c1bc10 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,8 @@ go \.* conf/apisix.uid deps +scgi_temp +uwsgi_temp +proxy_temp +fastcgi_temp +client_body_temp From 90112de53807d73ab31c706cc7a8a533b77165f8 Mon Sep 17 00:00:00 2001 From: idevz Date: Mon, 8 Jul 2019 23:57:18 +0800 Subject: [PATCH 3/6] update travis for macosx --- Makefile | 16 ++++++ utils/travis_runner.sh | 108 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100755 utils/travis_runner.sh diff --git a/Makefile b/Makefile index 1405860e97bd..db8f561496b6 100644 --- a/Makefile +++ b/Makefile @@ -54,13 +54,21 @@ init: run: mkdir -p logs mkdir -p /tmp/cores/ +ifeq ($(UNAME),Darwin) + $(OR_EXEC) -p $$PWD/ -c $$PWD/conf/nginx.conf +else $(OR_EXEC) -p $$PWD/ +endif ### stop: Stop the apisix server .PHONY: stop stop: +ifeq ($(UNAME),Darwin) + $(OR_EXEC) -p $$PWD/ -s stop -c $$PWD/conf/nginx.conf +else $(OR_EXEC) -p $$PWD/ -s stop +endif ### clean: Remove generated files @@ -72,7 +80,11 @@ clean: ### reload: Reload the apisix server .PHONY: reload reload: +ifeq ($(UNAME),Darwin) + $(OR_EXEC) -p $$PWD/ -s reload -c $$PWD/conf/nginx.conf +else $(OR_EXEC) -p $$PWD/ -s reload +endif ### install: Install the apisix @@ -103,4 +115,8 @@ install: $(INSTALL) bin/apisix $(INST_BINDIR)/apisix test: +ifeq ($(UNAME),Darwin) + prove -I../test-nginx/lib -I./ -r -s t/ +else prove -I../test-nginx/lib -r -s t/ +endif diff --git a/utils/travis_runner.sh b/utils/travis_runner.sh new file mode 100755 index 000000000000..2f04cd43cba1 --- /dev/null +++ b/utils/travis_runner.sh @@ -0,0 +1,108 @@ +#!/usr/bin/env bash + +### BEGIN ### +# Author: idevz +# Since: 08:52:47 2019/07/08 +# Description: travis_runner.sh +# travis_runner ./travis_runner.sh +# +# Environment variables that control this script: +# +### END ### + +set -ex + +export_or_prefix() { + if [ $TRAVIS_OS_NAME = osx ]; then + export OPENRESTY_PREFIX=$(TMP='./v_tmp' && $(which openresty) -V &>${TMP} && + cat ${TMP} | grep prefix | grep -Eo 'prefix=(.*?)/nginx' | + grep -Eo '/.*/' && rm ${TMP}) + else + export OPENRESTY_PREFIX="/usr/local/openresty-debug" + fi +} + +before_install() { + sudo cpanm --notest Test::Nginx IPC::Run >build.log 2>&1 || (cat build.log && exit 1) +} + +do_install() { + if [ $TRAVIS_OS_NAME = osx ]; then + brew install openresty/brew/openresty-debug + else + wget -qO - https://openresty.org/package/pubkey.gpg | sudo apt-key add - + sudo apt-get -y install software-properties-common + sudo add-apt-repository -y "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" + sudo apt-get update + sudo apt-get install openresty-debug + fi + + export_or_prefix + + luarocks install --lua-dir=${OPENRESTY_PREFIX}luajit luacov-coveralls --local --tree=deps + + if [ $TRAVIS_OS_NAME = osx ]; then + make dev + else + sudo luarocks install --lua-dir=${OPENRESTY_PREFIX}luajit apisix-*.rockspec --only-deps + fi + + git clone https://github.com/openresty/test-nginx.git test-nginx +} + +script() { + export_or_prefix + export PATH=$OPENRESTY_PREFIX/nginx/sbin:$OPENRESTY_PREFIX/luajit/bin:$OPENRESTY_PREFIX/bin:$PATH + if [ $TRAVIS_OS_NAME = osx ]; then + luarocks install luacheck + brew services start etcd + make help + make init + sudo make run + mkdir -p logs + sleep 1 + sudo make stop + + sudo cpanm Test::Nginx + + sleep 1 + make check || exit 1 + + ln -sf $PWD/deps/lib $PWD/deps/lib64 + APISIX_ENABLE_LUACOV=1 prove -Itest-nginx/lib -I./ -r t + else + sudo service etcd start + ./bin/apisix help + ./bin/apisix init + ./bin/apisix init_etcd + ./bin/apisix start + mkdir -p logs + sleep 1 + ./bin/apisix stop + sleep 1 + make check || exit 1 + APISIX_ENABLE_LUACOV=1 prove -Itest-nginx/lib -r t + fi +} + +after_success() { + luacov-coveralls +} + +case_opt=$1 +shift + +case ${case_opt} in +before_install) + before_install "$@" + ;; +do_install) + do_install "$@" + ;; +script) + script "$@" + ;; +after_success) + after_success "$@" + ;; +esac From a79f64634bf60a36a266ab92515278318ccc3c97 Mon Sep 17 00:00:00 2001 From: idevz Date: Tue, 9 Jul 2019 00:03:03 +0800 Subject: [PATCH 4/6] update travis for macosx --- .travis.yml | 46 +++++++++++++++++++--------------------------- 1 file changed, 19 insertions(+), 27 deletions(-) diff --git a/.travis.yml b/.travis.yml index 76cfd99fd973..404be85c9026 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,12 @@ -os: linux +os: + - linux + - osx dist: xenial +compiler: + - gcc + - clang + sudo: required addons: @@ -17,37 +23,23 @@ addons: - luarocks - cmake - lua-check - -env: - global: - - OPENRESTY_PREFIX=/usr/local/openresty-debug + homebrew: + packages: + - perl + - cpanminus + - etcd + - luarocks + - openresty + update: true before_install: - - sudo cpanm --notest Test::Nginx IPC::Run > build.log 2>&1 || (cat build.log && exit 1) - - sudo luarocks install --lua-dir=/usr/local/openresty/luajit luacov-coveralls + - ./utils/travis_runner.sh before_install install: - - wget -qO - https://openresty.org/package/pubkey.gpg | sudo apt-key add - - - sudo apt-get -y install software-properties-common - - sudo add-apt-repository -y "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" - - sudo apt-get update - - sudo apt-get install openresty-debug - - sudo luarocks install --lua-dir=/usr/local/openresty/luajit apisix-*.rockspec --only-deps - - git clone https://github.com/openresty/test-nginx.git test-nginx + - ./utils/travis_runner.sh do_install script: - - export PATH=$OPENRESTY_PREFIX/nginx/sbin:$OPENRESTY_PREFIX/luajit/bin:$OPENRESTY_PREFIX/bin:$PATH - - sudo service etcd start - - ./bin/apisix help - - ./bin/apisix init - - ./bin/apisix init_etcd - - ./bin/apisix start - - mkdir -p logs - - sleep 1 - - ./bin/apisix stop - - sleep 1 - - make check || exit 1 - - APISIX_ENABLE_LUACOV=1 prove -Itest-nginx/lib -r t + - ./utils/travis_runner.sh script after_success: - - luacov-coveralls + - ./utils/travis_runner.sh after_success \ No newline at end of file From 0d3aa6c841f0ce10e849c63acf112efb9a399689 Mon Sep 17 00:00:00 2001 From: idevz Date: Tue, 9 Jul 2019 16:13:04 +0800 Subject: [PATCH 5/6] update travis for macosx --- .travis.yml | 14 ++++++++------ utils/travis_runner.sh | 14 ++++++++++---- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 404be85c9026..eadec35b5eac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,11 @@ compiler: sudo: required +cache: + directories: + - $HOME/Library/Caches/Homebrew + - /usr/local/Homebrew + addons: apt: packages: @@ -24,14 +29,11 @@ addons: - cmake - lua-check homebrew: - packages: - - perl - - cpanminus - - etcd - - luarocks - - openresty update: true +before_cache: + - brew cleanup + before_install: - ./utils/travis_runner.sh before_install diff --git a/utils/travis_runner.sh b/utils/travis_runner.sh index 2f04cd43cba1..a22ff30cec1f 100755 --- a/utils/travis_runner.sh +++ b/utils/travis_runner.sh @@ -23,13 +23,14 @@ export_or_prefix() { } before_install() { + if [ $TRAVIS_OS_NAME = osx ]; then + HOMEBREW_NO_AUTO_UPDATE=1 brew install perl cpanminus etcd luarocks openresty/brew/openresty-debug + fi sudo cpanm --notest Test::Nginx IPC::Run >build.log 2>&1 || (cat build.log && exit 1) } do_install() { - if [ $TRAVIS_OS_NAME = osx ]; then - brew install openresty/brew/openresty-debug - else + if [ ! $TRAVIS_OS_NAME = osx ]; then wget -qO - https://openresty.org/package/pubkey.gpg | sudo apt-key add - sudo apt-get -y install software-properties-common sudo add-apt-repository -y "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" @@ -69,7 +70,12 @@ script() { make check || exit 1 ln -sf $PWD/deps/lib $PWD/deps/lib64 - APISIX_ENABLE_LUACOV=1 prove -Itest-nginx/lib -I./ -r t + sudo mkdir -p /usr/local/var/log/nginx/ + sudo touch /usr/local/var/log/nginx/error.log + sudo chmod 777 /usr/local/var/log/nginx/error.log + APISIX_ENABLE_LUACOV=1 prove -Itest-nginx/lib -I./ -r -v t + cat $PWD/t/servroot/conf/nginx.conf + cat /usr/local/var/log/nginx/error.log else sudo service etcd start ./bin/apisix help From 29d07e9b235565a269afd1a2182307d841cabd8a Mon Sep 17 00:00:00 2001 From: idevz Date: Wed, 10 Jul 2019 11:06:17 +0800 Subject: [PATCH 6/6] update travis for macosx --- .travis.yml | 30 ++++----- utils/travis_runner.sh | 114 ----------------------------------- utils/travis_runner_linux.sh | 74 +++++++++++++++++++++++ utils/travis_runner_osx.sh | 83 +++++++++++++++++++++++++ 4 files changed, 173 insertions(+), 128 deletions(-) delete mode 100755 utils/travis_runner.sh create mode 100755 utils/travis_runner_linux.sh create mode 100755 utils/travis_runner_osx.sh diff --git a/.travis.yml b/.travis.yml index eadec35b5eac..5227db7232c2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,18 +1,20 @@ -os: - - linux - - osx dist: xenial +sudo: required + +matrix: + fast_finish: true + include: + - os: linux + - os: osx + if: branch = master + cache: + directories: + - $HOME/Library/Caches/Homebrew + - /usr/local/Homebrew compiler: - gcc - clang - -sudo: required - -cache: - directories: - - $HOME/Library/Caches/Homebrew - - /usr/local/Homebrew addons: apt: @@ -35,13 +37,13 @@ before_cache: - brew cleanup before_install: - - ./utils/travis_runner.sh before_install + - ./utils/travis_runner_$TRAVIS_OS_NAME.sh before_install install: - - ./utils/travis_runner.sh do_install + - ./utils/travis_runner_$TRAVIS_OS_NAME.sh do_install script: - - ./utils/travis_runner.sh script + - ./utils/travis_runner_$TRAVIS_OS_NAME.sh script after_success: - - ./utils/travis_runner.sh after_success \ No newline at end of file + - ./utils/travis_runner_$TRAVIS_OS_NAME.sh after_success \ No newline at end of file diff --git a/utils/travis_runner.sh b/utils/travis_runner.sh deleted file mode 100755 index a22ff30cec1f..000000000000 --- a/utils/travis_runner.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env bash - -### BEGIN ### -# Author: idevz -# Since: 08:52:47 2019/07/08 -# Description: travis_runner.sh -# travis_runner ./travis_runner.sh -# -# Environment variables that control this script: -# -### END ### - -set -ex - -export_or_prefix() { - if [ $TRAVIS_OS_NAME = osx ]; then - export OPENRESTY_PREFIX=$(TMP='./v_tmp' && $(which openresty) -V &>${TMP} && - cat ${TMP} | grep prefix | grep -Eo 'prefix=(.*?)/nginx' | - grep -Eo '/.*/' && rm ${TMP}) - else - export OPENRESTY_PREFIX="/usr/local/openresty-debug" - fi -} - -before_install() { - if [ $TRAVIS_OS_NAME = osx ]; then - HOMEBREW_NO_AUTO_UPDATE=1 brew install perl cpanminus etcd luarocks openresty/brew/openresty-debug - fi - sudo cpanm --notest Test::Nginx IPC::Run >build.log 2>&1 || (cat build.log && exit 1) -} - -do_install() { - if [ ! $TRAVIS_OS_NAME = osx ]; then - wget -qO - https://openresty.org/package/pubkey.gpg | sudo apt-key add - - sudo apt-get -y install software-properties-common - sudo add-apt-repository -y "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" - sudo apt-get update - sudo apt-get install openresty-debug - fi - - export_or_prefix - - luarocks install --lua-dir=${OPENRESTY_PREFIX}luajit luacov-coveralls --local --tree=deps - - if [ $TRAVIS_OS_NAME = osx ]; then - make dev - else - sudo luarocks install --lua-dir=${OPENRESTY_PREFIX}luajit apisix-*.rockspec --only-deps - fi - - git clone https://github.com/openresty/test-nginx.git test-nginx -} - -script() { - export_or_prefix - export PATH=$OPENRESTY_PREFIX/nginx/sbin:$OPENRESTY_PREFIX/luajit/bin:$OPENRESTY_PREFIX/bin:$PATH - if [ $TRAVIS_OS_NAME = osx ]; then - luarocks install luacheck - brew services start etcd - make help - make init - sudo make run - mkdir -p logs - sleep 1 - sudo make stop - - sudo cpanm Test::Nginx - - sleep 1 - make check || exit 1 - - ln -sf $PWD/deps/lib $PWD/deps/lib64 - sudo mkdir -p /usr/local/var/log/nginx/ - sudo touch /usr/local/var/log/nginx/error.log - sudo chmod 777 /usr/local/var/log/nginx/error.log - APISIX_ENABLE_LUACOV=1 prove -Itest-nginx/lib -I./ -r -v t - cat $PWD/t/servroot/conf/nginx.conf - cat /usr/local/var/log/nginx/error.log - else - sudo service etcd start - ./bin/apisix help - ./bin/apisix init - ./bin/apisix init_etcd - ./bin/apisix start - mkdir -p logs - sleep 1 - ./bin/apisix stop - sleep 1 - make check || exit 1 - APISIX_ENABLE_LUACOV=1 prove -Itest-nginx/lib -r t - fi -} - -after_success() { - luacov-coveralls -} - -case_opt=$1 -shift - -case ${case_opt} in -before_install) - before_install "$@" - ;; -do_install) - do_install "$@" - ;; -script) - script "$@" - ;; -after_success) - after_success "$@" - ;; -esac diff --git a/utils/travis_runner_linux.sh b/utils/travis_runner_linux.sh new file mode 100755 index 000000000000..6f80dd2c103f --- /dev/null +++ b/utils/travis_runner_linux.sh @@ -0,0 +1,74 @@ +#!/usr/bin/env bash + +### BEGIN ### +# Author: idevz +# Since: 08:52:47 2019/07/08 +# Description: travis_runnerz_linux.sh +# travis_runner_linux ./travis_runner_linux.sh +# +# Environment variables that control this script: +# +### END ### + +set -ex + +export_or_prefix() { + export OPENRESTY_PREFIX="/usr/local/openresty-debug" +} + +before_install() { + sudo cpanm --notest Test::Nginx IPC::Run >build.log 2>&1 || (cat build.log && exit 1) + sudo luarocks install --lua-dir=/usr/local/openresty/luajit luacov-coveralls +} + +do_install() { + wget -qO - https://openresty.org/package/pubkey.gpg | sudo apt-key add - + sudo apt-get -y install software-properties-common + sudo add-apt-repository -y "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" + sudo apt-get update + sudo apt-get install openresty-debug + + export_or_prefix + + sudo luarocks install --lua-dir=${OPENRESTY_PREFIX}luajit apisix-*.rockspec --only-deps + + git clone https://github.com/openresty/test-nginx.git test-nginx +} + +script() { + export_or_prefix + export PATH=$OPENRESTY_PREFIX/nginx/sbin:$OPENRESTY_PREFIX/luajit/bin:$OPENRESTY_PREFIX/bin:$PATH + sudo service etcd start + ./bin/apisix help + ./bin/apisix init + ./bin/apisix init_etcd + ./bin/apisix start + mkdir -p logs + sleep 1 + ./bin/apisix stop + sleep 1 + make check || exit 1 + APISIX_ENABLE_LUACOV=1 prove -Itest-nginx/lib -r t +} + +after_success() { + luacov-coveralls +} + +case_opt=$1 +shift + +case ${case_opt} in +before_install) + before_install "$@" + ;; +do_install) + do_install "$@" + ;; +script) + script "$@" + ;; +after_success) + after_success "$@" + ;; +esac diff --git a/utils/travis_runner_osx.sh b/utils/travis_runner_osx.sh new file mode 100755 index 000000000000..61b7d0f81068 --- /dev/null +++ b/utils/travis_runner_osx.sh @@ -0,0 +1,83 @@ +#!/usr/bin/env bash + +### BEGIN ### +# Author: idevz +# Since: 08:52:47 2019/07/08 +# Description: travis_runner_osx.sh +# travis_runner_osx ./travis_runner_osx.sh +# +# Environment variables that control this script: +# +### END ### + +set -ex + +export_or_prefix() { + export OPENRESTY_PREFIX=$(TMP='./v_tmp' && $(which openresty) -V &>${TMP} && + cat ${TMP} | grep prefix | grep -Eo 'prefix=(.*?)/nginx' | + grep -Eo '/.*/' && rm ${TMP}) +} + +before_install() { + HOMEBREW_NO_AUTO_UPDATE=1 brew install perl cpanminus etcd luarocks openresty/brew/openresty-debug tree + sudo cpanm --notest Test::Nginx IPC::Run >build.log 2>&1 || (cat build.log && exit 1) + export_or_prefix + luarocks install --lua-dir=${OPENRESTY_PREFIX}luajit luacov-coveralls --local --tree=deps +} + +do_install() { + export_or_prefix + + make dev + + git clone https://github.com/openresty/test-nginx.git test-nginx +} + +script() { + export_or_prefix + export PATH=$OPENRESTY_PREFIX/nginx/sbin:$OPENRESTY_PREFIX/luajit/bin:$OPENRESTY_PREFIX/bin:$PATH + + luarocks install luacheck + brew services start etcd + make help + make init + sudo make run + mkdir -p logs + sleep 1 + sudo make stop + + sudo cpanm Test::Nginx + + sleep 1 + make check || exit 1 + + ln -sf $PWD/deps/lib $PWD/deps/lib64 + sudo mkdir -p /usr/local/var/log/nginx/ + sudo touch /usr/local/var/log/nginx/error.log + sudo chmod 777 /usr/local/var/log/nginx/error.log + APISIX_ENABLE_LUACOV=1 prove -Itest-nginx/lib -I./ -r t + # cat $PWD/t/servroot/conf/nginx.conf + # cat /usr/local/var/log/nginx/error.log +} + +after_success() { + $PWD/deps/bin/luacov-coveralls +} + +case_opt=$1 +shift + +case ${case_opt} in +before_install) + before_install "$@" + ;; +do_install) + do_install "$@" + ;; +script) + script "$@" + ;; +after_success) + after_success "$@" + ;; +esac