123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- name: "Build & Test"
- on: [push, pull_request]
- jobs:
- macOS:
- runs-on: macos-latest
- timeout-minutes: 30
- env:
- MACOSX_DEPLOYMENT_TARGET: "10.9"
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - name: Install Lua 5.1
- uses: leafo/[email protected]
- with:
- luaVersion: "5.1.5"
- - name: Configure
- run: cmake -Bbuild -S. -G Xcode -DLUA_INCLUDE_DIR=$PWD/.lua/include -DLUA_LIBRARIES=$PWD/.lua/lib/liblua.a
- - name: Build
- working-directory: build
- run: xcodebuild -configuration Release -scheme https
- - name: Test
- working-directory: ./build/src/Release
- run: lua -l "https" ../../../example/test.lua
- - name: Artifact
- if: always()
- uses: actions/upload-artifact@v3
- with:
- name: https-macos.zip
- path: build/src/**/https.so
- Linux:
- name: ${{ matrix.mode.name }}
- runs-on: ubuntu-latest
- timeout-minutes: 30
- strategy:
- matrix:
- mode:
- - name: Linux cURL
- curl: 1
- openssl: 0
- artifact: 0
- - name: Linux OpenSSL
- curl: 0
- openssl: 1
- artifact: 0
- - name: Linux cURL & OpenSSL
- curl: 1
- openssl: 1
- artifact: 1
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - name: Update APT Repository
- run: sudo apt-get update
- - name: Install Dependencies
- run: sudo apt-get install -y lua5.1 luajit liblua5.1-0-dev libcurl4-openssl-dev g++ libssl-dev
- - name: Configure
- run: cmake -Bbuild -S. -DCMAKE_INSTALL_PREFIX=$PWD/install -DCMAKE_BUILD_TYPE=Release -DUSE_CURL_BACKEND=${{ matrix.mode.curl }} -DUSE_OPENSSL_BACKEND=${{ matrix.mode.openssl }}
- - name: Build
- run: cmake --build build --config Release --target install -j$(nproc)
- - name: Test (Lua)
- if: matrix.mode.artifact == 0
- working-directory: ./install
- run: lua -l "https" ../example/test.lua
- - name: Test (LuaJIT)
- if: matrix.mode.artifact == 0
- working-directory: ./install
- run: luajit -l "https" ../example/test.lua
- - name: Artifact
- if: matrix.mode.artifact == 1
- uses: actions/upload-artifact@v3
- with:
- name: https-ubuntu.zip
- path: install/https.so
- Windows:
- runs-on: windows-latest
- strategy:
- matrix:
- arch:
- - Win32
- - x64
- defaults:
- run:
- shell: cmd
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - name: Download LuaJIT
- uses: actions/checkout@v3
- with:
- repository: LuaJIT/LuaJIT
- ref: v2.1
- path: LuaJIT
- - name: Configure MSVC Developer Command Prompt
- uses: ilammy/msvc-dev-cmd@v1
- with:
- arch: ${{ matrix.arch }}
- - name: Compile LuaJIT
- working-directory: ./LuaJIT/src
- run: msvcbuild.bat amalg
- - name: Configure
- run: cmake -Bbuild -S. -DCMAKE_INSTALL_PREFIX=%CD%\install -A ${{ matrix.arch }} -DLUA_INCLUDE_DIR=%CD%\LuaJIT\src -DLUA_LIBRARIES=%CD%\LuaJIT\src\lua51.lib
- - name: Build
- run: cmake --build build --config Release --target install
- - name: Test
- working-directory: ./install
- run: ..\LuaJIT\src\luajit ..\example\test.lua
- - name: Artifact
- if: always()
- uses: actions/upload-artifact@v3
- with:
- name: https-windows-${{ matrix.arch }}.zip
- path: install/https.dll
|