123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- name: "build-and-test"
- on: [push, pull_request]
- env:
- ACTIONS_ALLOW_UNSECURE_COMMANDS: true # required for leafo/gh-actions-lua
- jobs:
- build_macos_10_luajit:
- runs-on: "macos-10.15"
- timeout-minutes: 30
- steps:
- - uses: actions/checkout@v2
- - uses: leafo/gh-actions-lua@v7
- with:
- luaVersion: "luajit"
- - run: |
- 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
- cd ./build
- xcodebuild
- xcodebuild -configuration Release
- mv src/Debug/libhttps.so src/Debug/https.so
- mv src/Release/libhttps.so src/Release/https.so
-
- cd src/Debug
- lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
- cd ../Release
- lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
- - uses: actions/upload-artifact@v2
- with:
- name: luajit-macos10.zip
- path: build/src/**/https.so
-
- build_macos_10_lua51:
- runs-on: "macos-10.15"
- timeout-minutes: 30
- steps:
- - uses: actions/checkout@v2
- - uses: leafo/gh-actions-lua@v7
- with:
- luaVersion: "5.1.5"
- - run: |
- 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
- cd ./build
- xcodebuild
- xcodebuild -configuration Release
- mv src/Debug/libhttps.so src/Debug/https.so
- mv src/Release/libhttps.so src/Release/https.so
-
- cd src/Debug
- lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
- cd ../Release
- lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
- - uses: actions/upload-artifact@v2
- with:
- name: lua51-macos10.zip
- path: build/src/**/https.so
-
- build_macos_11:
- runs-on: "macos-11.0"
- timeout-minutes: 30
- steps:
- - uses: actions/checkout@v2
- - uses: leafo/gh-actions-lua@v7
- with:
- luaVersion: "5.1.5"
- - run: |
- 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
- cd ./build
- xcodebuild
- xcodebuild -configuration Release
- mv src/Debug/libhttps.so src/Debug/https.so
- mv src/Release/libhttps.so src/Release/https.so
-
- cd src/Debug
- lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
- cd ../Release
- lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
- - uses: actions/upload-artifact@v2
- with:
- name: macos11.zip
- path: build/src/**/https.so
- build_linux:
- runs-on: "ubuntu-20.04"
- timeout-minutes: 30
- steps:
- - uses: actions/checkout@v2
- - name: Build and test
- run: |
- # install dependencies
- sudo apt-get install -y cmake lua5.1 liblua5.1-0-dev luajit libluajit-5.1-dev libcurl4-openssl-dev g++ libssl-dev
-
- # build
- cmake -S . -B ./build
- cd build
- make
- cd ..
- cp build/src/libhttps.so ./https.so
-
- # Test
- lua -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
- luajit -l "https" -e "assert(require('https').request('https://httpbin.org/post', {method='post', data='lotsa=data'}) == 200)"
- - uses: actions/upload-artifact@v2
- with:
- name: ubuntu.zip
- path: https.so
- build_windows:
- runs-on: "windows-2019"
- timeout-minutes: 30
- steps:
- - uses: actions/checkout@v2
- - uses: carlosperate/[email protected]
- with:
- file-url: "https://master.dl.sourceforge.net/project/luabinaries/5.1.5/Windows%20Libraries/Dynamic/lua-5.1.5_Win64_dll14_lib.zip"
- file-name: "lua51.zip"
- - uses: carlosperate/[email protected]
- with:
- file-url: "https://iweb.dl.sourceforge.net/project/luabinaries/5.1.5/Tools%20Executables/lua-5.1.5_Win64_bin.zip"
- file-name: "lua51bin.zip"
- - run: |
- 7z x lua51.zip -o${{ runner.workspace }}/lua-51
- 7z x lua51bin.zip -o${{ runner.workspace }}/lua-51/bin
- - uses: ashutoshvarma/action-cmake-build@master
- with:
- build-dir: ${{ runner.workspace }}/build
- build-type: Debug
- # Extra options pass to cmake while configuring project
- configure-options: "-H. -A x64 -T v140 -DLUA_INCLUDE_DIR=${{ runner.workspace }}/lua-51/include -DLUA_LIBRARIES=${{ runner.workspace }}/lua-51/lua5.1.lib"
- - run: |
- cd ${{ runner.workspace }}/build/src/Debug
- ${{ 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)"
- - uses: actions/upload-artifact@v2
- with:
- name: windows.zip
- path: ${{ runner.workspace }}/build/src/**/https.dll
|