1+ name : " build-and-test"
2+ on :
3+ push :
4+ branches :
5+ - master
6+
7+ env :
8+ ACTIONS_ALLOW_UNSECURE_COMMANDS : true # required for leafo/gh-actions-lua
9+
10+ jobs :
11+ build_macos_10_luajit :
12+ runs-on : " macos-10.15"
13+ timeout-minutes : 30
14+ steps :
15+ - uses : actions/checkout@v2
16+ - uses : leafo/gh-actions-lua@v7
17+ with :
18+ luaVersion : " luajit"
19+ - run : |
20+ cmake -G Xcode -S . -B ./build -DLUA_INCLUDE_DIR=${{ runner.workspace }}/lua-https/.lua/include/luajit-2.1 -DLUA_LIBRARIES=${{ runner.workspace }}/lua-https/.lua/lib/libluajit-5.1.a
21+ cd ./build
22+ xcodebuild
23+ xcodebuild -configuration Release
24+ mv src/Debug/libhttps.so src/Debug/https.so
25+ mv src/Release/libhttps.so src/Release/https.so
26+
27+ cd src/Debug
28+ lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
29+ cd ../Release
30+ lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
31+ - uses : actions/upload-artifact@v2
32+ with :
33+ name : luajit-macos10.zip
34+ path : build/src/**/https.so
35+
36+ build_macos_10_lua51 :
37+ runs-on : " macos-10.15"
38+ timeout-minutes : 30
39+ steps :
40+ - uses : actions/checkout@v2
41+ - uses : leafo/gh-actions-lua@v7
42+ with :
43+ luaVersion : " 5.1.5"
44+ - run : |
45+ cmake -G Xcode -S . -B ./build -DLUA_INCLUDE_DIR=${{ runner.workspace }}/lua-https/.lua/include -DLUA_LIBRARIES=${{ runner.workspace }}/lua-https/.lua/lib/liblua.a
46+ cd ./build
47+ xcodebuild
48+ xcodebuild -configuration Release
49+ mv src/Debug/libhttps.so src/Debug/https.so
50+ mv src/Release/libhttps.so src/Release/https.so
51+
52+ cd src/Debug
53+ lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
54+ cd ../Release
55+ lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
56+ - uses : actions/upload-artifact@v2
57+ with :
58+ name : lua51-macos10.zip
59+ path : build/src/**/https.so
60+
61+ build_macos_11 :
62+ runs-on : " macos-11.0"
63+ timeout-minutes : 30
64+ steps :
65+ - uses : actions/checkout@v2
66+ - uses : leafo/gh-actions-lua@v7
67+ with :
68+ luaVersion : " 5.1.5"
69+ - run : |
70+ cmake -G Xcode -S . -B ./build -DLUA_INCLUDE_DIR=${{ runner.workspace }}/lua-https/.lua/include -DLUA_LIBRARIES=${{ runner.workspace }}/lua-https/.lua/lib/liblua.a
71+ cd ./build
72+ xcodebuild
73+ xcodebuild -configuration Release
74+ mv src/Debug/libhttps.so src/Debug/https.so
75+ mv src/Release/libhttps.so src/Release/https.so
76+
77+ cd src/Debug
78+ lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
79+ cd ../Release
80+ lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
81+ - uses : actions/upload-artifact@v2
82+ with :
83+ name : macos11.zip
84+ path : build/src/**/https.so
85+
86+ build_linux :
87+ runs-on : " ubuntu-20.04"
88+ timeout-minutes : 30
89+ steps :
90+ - uses : actions/checkout@v2
91+ - name : Build and test
92+ run : |
93+ # install dependencies
94+ sudo apt-get install -y cmake lua5.1 liblua5.1-0-dev luajit libluajit-5.1-dev libcurl4-openssl-dev g++ libssl-dev
95+
96+ # build
97+ cmake -S . -B ./build
98+ cd build
99+ make
100+ cd ..
101+ cp build/src/libhttps.so ./https.so
102+
103+ # Test
104+ lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
105+ luajit -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
106+ - uses : actions/upload-artifact@v2
107+ with :
108+ name : ubuntu.zip
109+ path : https.so
110+
111+ build_windows :
112+ runs-on : " windows-2019"
113+ timeout-minutes : 30
114+ steps :
115+ - uses : actions/checkout@v2
116+ -
uses :
carlosperate/[email protected] 117+ with :
118+ file-url : " https://master.dl.sourceforge.net/project/luabinaries/5.1.5/Windows%20Libraries/Dynamic/lua-5.1.5_Win64_dll14_lib.zip"
119+ file-name : " lua51.zip"
120+ -
uses :
carlosperate/[email protected] 121+ with :
122+ file-url : " https://iweb.dl.sourceforge.net/project/luabinaries/5.1.5/Tools%20Executables/lua-5.1.5_Win64_bin.zip"
123+ file-name : " lua51bin.zip"
124+ - run : |
125+ 7z x lua51.zip -o${{ runner.workspace }}/lua-51
126+ 7z x lua51bin.zip -o${{ runner.workspace }}/lua-51/bin
127+ - uses : ashutoshvarma/action-cmake-build@master
128+ with :
129+ build-dir : ${{ runner.workspace }}/build
130+ build-type : Debug
131+ # Extra options pass to cmake while configuring project
132+ configure-options : " -H. -A x64 -T v140 -DLUA_INCLUDE_DIR=${{ runner.workspace }}/lua-51/include -DLUA_LIBRARIES=${{ runner.workspace }}/lua-51/lua5.1.lib"
133+ - run : |
134+ cd ${{ runner.workspace }}/build/src/Debug
135+ ${{ runner.workspace }}/lua-51/bin/lua5.1.exe -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
136+ - uses : actions/upload-artifact@v2
137+ with :
138+ name : windows.zip
139+ path : ${{ runner.workspace }}/build/src/**/https.dll
0 commit comments