Skip to content

Commit 5e5a040

Browse files
authored
chore(*) add GitHub Actions workflows (#82)
* chore(*) add GitHub Actions workflows * fix(healthcheck) lint error
1 parent 6ab057d commit 5e5a040

File tree

4 files changed

+379
-59
lines changed

4 files changed

+379
-59
lines changed

.github/workflows/latest_os.yml

+189
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
name: Build and test for Ubuntu latest
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build:
7+
name: Build and install dependencies
8+
runs-on: ubuntu-latest
9+
strategy:
10+
matrix:
11+
openresty-version: [1.17.8.2]
12+
luarocks-version: [3.7.0]
13+
14+
steps:
15+
- name: Update and install OS dependencies
16+
run: sudo apt-get update && sudo apt-get install -y libssl-dev ssl-cert
17+
18+
- name: Set environment variables
19+
env:
20+
LUAROCKS_VER: ${{ matrix.luarocks-version }}
21+
OPENRESTY_VER: ${{ matrix.openresty-version }}
22+
run: |
23+
echo "DOWNLOAD_PATH=$HOME/download-root" >> $GITHUB_ENV
24+
export DOWNLOAD_PATH=$HOME/download-root
25+
echo "INSTALL_PATH=$HOME/install-root" >> $GITHUB_ENV
26+
export INSTALL_PATH=$HOME/install-root
27+
echo "LUAROCKS_VER=$LUAROCKS_VER" >> $GITHUB_ENV
28+
echo "OPENRESTY_VER=$OPENRESTY_VER" >> $GITHUB_ENV
29+
export LUAROCKS_PREFIX=$INSTALL_PATH/luarocks-$LUAROCKS_VER
30+
echo "LUAROCKS_PREFIX=$LUAROCKS_PREFIX" >> $GITHUB_ENV
31+
export OPENRESTY_PREFIX=$INSTALL_PATH/openresty-$OPENRESTY_VER
32+
echo "OPENRESTY_PREFIX=$OPENRESTY_PREFIX" >> $GITHUB_ENV
33+
echo "PATH=$DOWNLOAD_PATH:$LUAROCKS_PREFIX/bin:$OPENRESTY_PREFIX/nginx/sbin:$DOWNLOAD_PATH/cpanm:$PATH" >> $GITHUB_ENV
34+
35+
- name: Checkout lua-resty-healthcheck
36+
uses: actions/checkout@v2
37+
38+
- name: Lookup build cache
39+
uses: actions/cache@v2
40+
id: cache-deps
41+
with:
42+
path: |
43+
${{ env.INSTALL_PATH }}
44+
~/perl5
45+
key: ${{ runner.os }}-${{ hashFiles('.github/workflows/latest_os.yml') }}
46+
47+
- name: Create needed paths
48+
if: steps.cache-deps.outputs.cache-hit != 'true'
49+
run: |
50+
mkdir -p $DOWNLOAD_PATH
51+
mkdir -p $INSTALL_PATH
52+
53+
- name: Build and install OpenResty ${{ matrix.openresty-version }}
54+
if: steps.cache-deps.outputs.cache-hit != 'true'
55+
run: |
56+
if [ ! -d $INSTALL_PATH/openresty-$OPENRESTY_VER ];
57+
then
58+
pushd $DOWNLOAD_PATH
59+
echo "Downloading from http://openresty.org/download/openresty-$OPENRESTY_VER.tar.gz"
60+
wget -O $DOWNLOAD_PATH/openresty-$OPENRESTY_VER.tar.gz http://openresty.org/download/openresty-$OPENRESTY_VER.tar.gz
61+
echo "tar -zxf $DOWNLOAD_PATH/openresty-$OPENRESTY_VER.tar.gz"
62+
tar -zxf $DOWNLOAD_PATH/openresty-$OPENRESTY_VER.tar.gz
63+
echo "result: $?"
64+
pushd openresty-$OPENRESTY_VER
65+
./configure --prefix=$OPENRESTY_PREFIX
66+
make
67+
make install
68+
popd
69+
popd
70+
fi
71+
72+
- name: Build and install LuaRocks ${{ matrix.luarocks-version }}
73+
if: steps.cache-deps.outputs.cache-hit != 'true'
74+
run: |
75+
if [ ! -d $INSTALL_PATH/luarocks-$LUAROCKS_VER ];
76+
then
77+
pushd $DOWNLOAD_PATH
78+
echo "Downloading from https://luarocks.github.io/luarocks/releases/luarocks-$LUAROCKS_VER.tar.gz"
79+
wget -O $DOWNLOAD_PATH/luarocks-$LUAROCKS_VER.tar.gz https://luarocks.github.io/luarocks/releases/luarocks-$LUAROCKS_VER.tar.gz
80+
tar -zxf $DOWNLOAD_PATH/luarocks-$LUAROCKS_VER.tar.gz
81+
pushd luarocks-$LUAROCKS_VER
82+
./configure --prefix=$LUAROCKS_PREFIX --with-lua=$OPENRESTY_PREFIX/luajit --with-lua-include=$OPENRESTY_PREFIX/luajit/include/luajit-2.1 --lua-suffix=jit
83+
make build
84+
make install
85+
popd
86+
luarocks install luacheck
87+
popd
88+
fi
89+
90+
- name: Install Test::NGINX
91+
if: steps.cache-deps.outputs.cache-hit != 'true'
92+
run: |
93+
if [ ! -f $DOWNLOAD_PATH/cpanm ];
94+
then
95+
wget -O $DOWNLOAD_PATH/cpanm https://cpanmin.us/
96+
chmod +x $DOWNLOAD_PATH/cpanm
97+
cpanm --notest --local-lib=$HOME/perl5 local::lib && eval $(perl -I $HOME/perl5/lib/perl5/ -Mlocal::lib)
98+
cpanm --notest Test::Nginx
99+
fi
100+
101+
lint:
102+
name: Static code analysis
103+
runs-on: ubuntu-latest
104+
needs: build
105+
strategy:
106+
matrix:
107+
openresty-version: [1.17.8.2]
108+
luarocks-version: [3.7.0]
109+
steps:
110+
- name: Checkout lua-resty-healthcheck
111+
uses: actions/checkout@v2
112+
113+
- name: Set environment variables
114+
env:
115+
LUAROCKS_VER: ${{ matrix.luarocks-version }}
116+
OPENRESTY_VER: ${{ matrix.openresty-version }}
117+
run: |
118+
echo "DOWNLOAD_PATH=$HOME/download-root" >> $GITHUB_ENV
119+
export DOWNLOAD_PATH=$HOME/download-root
120+
echo "INSTALL_PATH=$HOME/install-root" >> $GITHUB_ENV
121+
export INSTALL_PATH=$HOME/install-root
122+
echo "LUAROCKS_VER=$LUAROCKS_VER" >> $GITHUB_ENV
123+
echo "OPENRESTY_VER=$OPENRESTY_VER" >> $GITHUB_ENV
124+
export LUAROCKS_PREFIX=$INSTALL_PATH/luarocks-$LUAROCKS_VER
125+
echo "LUAROCKS_PREFIX=$LUAROCKS_PREFIX" >> $GITHUB_ENV
126+
export OPENRESTY_PREFIX=$INSTALL_PATH/openresty-$OPENRESTY_VER
127+
echo "OPENRESTY_PREFIX=$OPENRESTY_PREFIX" >> $GITHUB_ENV
128+
echo "PATH=$DOWNLOAD_PATH:$LUAROCKS_PREFIX/bin:$OPENRESTY_PREFIX/nginx/sbin:$DOWNLOAD_PATH/cpanm:$PATH" >> $GITHUB_ENV
129+
130+
- name: Lookup build cache
131+
uses: actions/cache@v2
132+
id: cache-deps
133+
with:
134+
path: |
135+
${{ env.INSTALL_PATH }}
136+
~/perl5
137+
key: ${{ runner.os }}-${{ hashFiles('.github/workflows/latest_os.yml') }}
138+
139+
- name: Lint code
140+
run: |
141+
eval `luarocks path`
142+
luacheck lib
143+
144+
install-and-test:
145+
name: Test lua-resty-healthcheck
146+
runs-on: ubuntu-latest
147+
needs: build
148+
strategy:
149+
matrix:
150+
openresty-version: [1.17.8.2]
151+
luarocks-version: [3.7.0]
152+
steps:
153+
- name: Checkout lua-resty-healthcheck
154+
uses: actions/checkout@v2
155+
156+
- name: Set environment variables
157+
env:
158+
LUAROCKS_VER: ${{ matrix.luarocks-version }}
159+
OPENRESTY_VER: ${{ matrix.openresty-version }}
160+
run: |
161+
echo "DOWNLOAD_PATH=$HOME/download-root" >> $GITHUB_ENV
162+
export DOWNLOAD_PATH=$HOME/download-root
163+
echo "INSTALL_PATH=$HOME/install-root" >> $GITHUB_ENV
164+
export INSTALL_PATH=$HOME/install-root
165+
echo "LUAROCKS_VER=$LUAROCKS_VER" >> $GITHUB_ENV
166+
echo "OPENRESTY_VER=$OPENRESTY_VER" >> $GITHUB_ENV
167+
export LUAROCKS_PREFIX=$INSTALL_PATH/luarocks-$LUAROCKS_VER
168+
echo "LUAROCKS_PREFIX=$LUAROCKS_PREFIX" >> $GITHUB_ENV
169+
export OPENRESTY_PREFIX=$INSTALL_PATH/openresty-$OPENRESTY_VER
170+
echo "OPENRESTY_PREFIX=$OPENRESTY_PREFIX" >> $GITHUB_ENV
171+
echo "PATH=$DOWNLOAD_PATH:$LUAROCKS_PREFIX/bin:$OPENRESTY_PREFIX/nginx/sbin:$DOWNLOAD_PATH/cpanm:$PATH" >> $GITHUB_ENV
172+
173+
- name: Lookup build cache
174+
uses: actions/cache@v2
175+
id: cache-deps
176+
with:
177+
path: |
178+
${{ env.INSTALL_PATH }}
179+
~/perl5
180+
key: ${{ runner.os }}-${{ hashFiles('.github/workflows/latest_os.yml') }}
181+
182+
- name: Install lua-resty-healthcheck
183+
run: luarocks make
184+
185+
- name: Run tests
186+
run: |
187+
eval `luarocks path`
188+
eval $(perl -I $HOME/perl5/lib/perl5/ -Mlocal::lib)
189+
TEST_NGINX_RANDOMIZE=1 prove -I. -r t

.github/workflows/old_os.yml

+189
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
name: Build and test for Ubuntu 18.04
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build:
7+
name: Build and install dependencies
8+
runs-on: ubuntu-18.04
9+
strategy:
10+
matrix:
11+
openresty-version: [1.13.6.2, 1.15.8.3, 1.17.8.2]
12+
luarocks-version: [3.7.0]
13+
14+
steps:
15+
- name: Update and install OS dependencies
16+
run: sudo apt-get update && sudo apt-get install -y libssl-dev ssl-cert
17+
18+
- name: Set environment variables
19+
env:
20+
LUAROCKS_VER: ${{ matrix.luarocks-version }}
21+
OPENRESTY_VER: ${{ matrix.openresty-version }}
22+
run: |
23+
echo "DOWNLOAD_PATH=$HOME/download-root" >> $GITHUB_ENV
24+
export DOWNLOAD_PATH=$HOME/download-root
25+
echo "INSTALL_PATH=$HOME/install-root" >> $GITHUB_ENV
26+
export INSTALL_PATH=$HOME/install-root
27+
echo "LUAROCKS_VER=$LUAROCKS_VER" >> $GITHUB_ENV
28+
echo "OPENRESTY_VER=$OPENRESTY_VER" >> $GITHUB_ENV
29+
export LUAROCKS_PREFIX=$INSTALL_PATH/luarocks-$LUAROCKS_VER
30+
echo "LUAROCKS_PREFIX=$LUAROCKS_PREFIX" >> $GITHUB_ENV
31+
export OPENRESTY_PREFIX=$INSTALL_PATH/openresty-$OPENRESTY_VER
32+
echo "OPENRESTY_PREFIX=$OPENRESTY_PREFIX" >> $GITHUB_ENV
33+
echo "PATH=$DOWNLOAD_PATH:$LUAROCKS_PREFIX/bin:$OPENRESTY_PREFIX/nginx/sbin:$DOWNLOAD_PATH/cpanm:$PATH" >> $GITHUB_ENV
34+
35+
- name: Checkout lua-resty-healthcheck
36+
uses: actions/checkout@v2
37+
38+
- name: Lookup build cache
39+
uses: actions/cache@v2
40+
id: cache-deps
41+
with:
42+
path: |
43+
${{ env.INSTALL_PATH }}
44+
~/perl5
45+
key: ${{ runner.os }}-${{ matrix.openresty-version }}-${{ hashFiles('.github/workflows/old_os.yml') }}
46+
47+
- name: Create needed paths
48+
if: steps.cache-deps.outputs.cache-hit != 'true'
49+
run: |
50+
mkdir -p $DOWNLOAD_PATH
51+
mkdir -p $INSTALL_PATH
52+
53+
- name: Build and install OpenResty ${{ matrix.openresty-version }}
54+
if: steps.cache-deps.outputs.cache-hit != 'true'
55+
run: |
56+
if [ ! -d $INSTALL_PATH/openresty-$OPENRESTY_VER ];
57+
then
58+
pushd $DOWNLOAD_PATH
59+
echo "Downloading from http://openresty.org/download/openresty-$OPENRESTY_VER.tar.gz"
60+
wget -O $DOWNLOAD_PATH/openresty-$OPENRESTY_VER.tar.gz http://openresty.org/download/openresty-$OPENRESTY_VER.tar.gz
61+
echo "tar -zxf $DOWNLOAD_PATH/openresty-$OPENRESTY_VER.tar.gz"
62+
tar -zxf $DOWNLOAD_PATH/openresty-$OPENRESTY_VER.tar.gz
63+
echo "result: $?"
64+
pushd openresty-$OPENRESTY_VER
65+
./configure --prefix=$OPENRESTY_PREFIX
66+
make
67+
make install
68+
popd
69+
popd
70+
fi
71+
72+
- name: Build and install LuaRocks ${{ matrix.luarocks-version }}
73+
if: steps.cache-deps.outputs.cache-hit != 'true'
74+
run: |
75+
if [ ! -d $INSTALL_PATH/luarocks-$LUAROCKS_VER ];
76+
then
77+
pushd $DOWNLOAD_PATH
78+
echo "Downloading from https://luarocks.github.io/luarocks/releases/luarocks-$LUAROCKS_VER.tar.gz"
79+
wget -O $DOWNLOAD_PATH/luarocks-$LUAROCKS_VER.tar.gz https://luarocks.github.io/luarocks/releases/luarocks-$LUAROCKS_VER.tar.gz
80+
tar -zxf $DOWNLOAD_PATH/luarocks-$LUAROCKS_VER.tar.gz
81+
pushd luarocks-$LUAROCKS_VER
82+
./configure --prefix=$LUAROCKS_PREFIX --with-lua=$OPENRESTY_PREFIX/luajit --with-lua-include=$OPENRESTY_PREFIX/luajit/include/luajit-2.1 --lua-suffix=jit
83+
make build
84+
make install
85+
popd
86+
luarocks install luacheck
87+
popd
88+
fi
89+
90+
- name: Install Test::NGINX
91+
if: steps.cache-deps.outputs.cache-hit != 'true'
92+
run: |
93+
if [ ! -f $DOWNLOAD_PATH/cpanm ];
94+
then
95+
wget -O $DOWNLOAD_PATH/cpanm https://cpanmin.us/
96+
chmod +x $DOWNLOAD_PATH/cpanm
97+
cpanm --notest --local-lib=$HOME/perl5 local::lib && eval $(perl -I $HOME/perl5/lib/perl5/ -Mlocal::lib)
98+
cpanm --notest Test::Nginx
99+
fi
100+
101+
lint:
102+
name: Static code analysis
103+
runs-on: ubuntu-18.04
104+
needs: build
105+
strategy:
106+
matrix:
107+
openresty-version: [1.13.6.2, 1.15.8.3, 1.17.8.2]
108+
luarocks-version: [3.7.0]
109+
steps:
110+
- name: Checkout lua-resty-healthcheck
111+
uses: actions/checkout@v2
112+
113+
- name: Set environment variables
114+
env:
115+
LUAROCKS_VER: ${{ matrix.luarocks-version }}
116+
OPENRESTY_VER: ${{ matrix.openresty-version }}
117+
run: |
118+
echo "DOWNLOAD_PATH=$HOME/download-root" >> $GITHUB_ENV
119+
export DOWNLOAD_PATH=$HOME/download-root
120+
echo "INSTALL_PATH=$HOME/install-root" >> $GITHUB_ENV
121+
export INSTALL_PATH=$HOME/install-root
122+
echo "LUAROCKS_VER=$LUAROCKS_VER" >> $GITHUB_ENV
123+
echo "OPENRESTY_VER=$OPENRESTY_VER" >> $GITHUB_ENV
124+
export LUAROCKS_PREFIX=$INSTALL_PATH/luarocks-$LUAROCKS_VER
125+
echo "LUAROCKS_PREFIX=$LUAROCKS_PREFIX" >> $GITHUB_ENV
126+
export OPENRESTY_PREFIX=$INSTALL_PATH/openresty-$OPENRESTY_VER
127+
echo "OPENRESTY_PREFIX=$OPENRESTY_PREFIX" >> $GITHUB_ENV
128+
echo "PATH=$DOWNLOAD_PATH:$LUAROCKS_PREFIX/bin:$OPENRESTY_PREFIX/nginx/sbin:$DOWNLOAD_PATH/cpanm:$PATH" >> $GITHUB_ENV
129+
130+
- name: Lookup build cache
131+
uses: actions/cache@v2
132+
id: cache-deps
133+
with:
134+
path: |
135+
${{ env.INSTALL_PATH }}
136+
~/perl5
137+
key: ${{ runner.os }}-${{ matrix.openresty-version }}-${{ hashFiles('.github/workflows/old_os.yml') }}
138+
139+
- name: Lint code
140+
run: |
141+
eval `luarocks path`
142+
luacheck lib
143+
144+
install-and-test:
145+
name: Test lua-resty-healthcheck
146+
runs-on: ubuntu-18.04
147+
needs: build
148+
strategy:
149+
matrix:
150+
openresty-version: [1.13.6.2, 1.15.8.3, 1.17.8.2]
151+
luarocks-version: [3.7.0]
152+
steps:
153+
- name: Checkout lua-resty-healthcheck
154+
uses: actions/checkout@v2
155+
156+
- name: Set environment variables
157+
env:
158+
LUAROCKS_VER: ${{ matrix.luarocks-version }}
159+
OPENRESTY_VER: ${{ matrix.openresty-version }}
160+
run: |
161+
echo "DOWNLOAD_PATH=$HOME/download-root" >> $GITHUB_ENV
162+
export DOWNLOAD_PATH=$HOME/download-root
163+
echo "INSTALL_PATH=$HOME/install-root" >> $GITHUB_ENV
164+
export INSTALL_PATH=$HOME/install-root
165+
echo "LUAROCKS_VER=$LUAROCKS_VER" >> $GITHUB_ENV
166+
echo "OPENRESTY_VER=$OPENRESTY_VER" >> $GITHUB_ENV
167+
export LUAROCKS_PREFIX=$INSTALL_PATH/luarocks-$LUAROCKS_VER
168+
echo "LUAROCKS_PREFIX=$LUAROCKS_PREFIX" >> $GITHUB_ENV
169+
export OPENRESTY_PREFIX=$INSTALL_PATH/openresty-$OPENRESTY_VER
170+
echo "OPENRESTY_PREFIX=$OPENRESTY_PREFIX" >> $GITHUB_ENV
171+
echo "PATH=$DOWNLOAD_PATH:$LUAROCKS_PREFIX/bin:$OPENRESTY_PREFIX/nginx/sbin:$DOWNLOAD_PATH/cpanm:$PATH" >> $GITHUB_ENV
172+
173+
- name: Lookup build cache
174+
uses: actions/cache@v2
175+
id: cache-deps
176+
with:
177+
path: |
178+
${{ env.INSTALL_PATH }}
179+
~/perl5
180+
key: ${{ runner.os }}-${{ matrix.openresty-version }}-${{ hashFiles('.github/workflows/old_os.yml') }}
181+
182+
- name: Install lua-resty-healthcheck
183+
run: luarocks make
184+
185+
- name: Run tests
186+
run: |
187+
eval `luarocks path`
188+
eval $(perl -I $HOME/perl5/lib/perl5/ -Mlocal::lib)
189+
TEST_NGINX_RANDOMIZE=1 prove -I. -r t

0 commit comments

Comments
 (0)