| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- 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@v4
- - name: Download LuaJIT
- uses: actions/checkout@v4
- with:
- repository: LuaJIT/LuaJIT
- ref: v2.1
- path: LuaJIT
- - name: Compile universal LuaJIT
- working-directory: ./LuaJIT
- run: |
- TARGET_FLAGS="-arch x86_64" make
- cp ./src/libluajit.so ./src/libluajit_x64.dylib
- cp ./src/luajit ./src/luajit_x64
- make clean
- TARGET_FLAGS="-arch arm64" make
- cp ./src/libluajit.so ./src/libluajit_arm.dylib
- cp ./src/luajit ./src/luajit_arm
- lipo -create -output ./src/libluajit.dylib ./src/libluajit_x64.dylib ./src/libluajit_arm.dylib
- lipo -create -output ./src/luajit ./src/luajit_x64 ./src/luajit_arm
- - name: Configure
- run: cmake -Bbuild -S. -G Xcode -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DLUA_INCLUDE_DIR=$PWD/LuaJIT/src -DLUA_LIBRARIES=$PWD/LuaJIT/src/lua
- - name: Build
- working-directory: build
- run: xcodebuild -configuration Release -scheme https -destination generic/platform=macOS
- - name: Test
- working-directory: ./build/src/Release
- run: ../../../LuaJIT/src/luajit -l "https" ../../../example/test.lua
- - name: Artifact
- if: always()
- uses: actions/upload-artifact@v4
- with:
- name: https-macos.zip
- path: build/src/**/https.so
- Linux:
- name: ${{ matrix.mode.name }}
- runs-on: ubuntu-20.04
- 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@v4
- - 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@v4
- 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@v4
- - name: Download LuaJIT
- uses: actions/checkout@v4
- 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@v4
- with:
- name: https-windows-${{ matrix.arch }}.zip
- path: install/https.dll
|