Skip to content

Commit fcdb0e7

Browse files
jiaaroslime73
authored andcommitted
someone told me to put this here
1 parent 6efd5e5 commit fcdb0e7

1 file changed

Lines changed: 139 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
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

Comments
 (0)