name: Busted on: [push, pull_request] jobs: busted: strategy: fail-fast: false matrix: lua_version: [ "luajit-openresty", "luajit-2.1.0-beta3", "luajit-git", "5.4.6", "5.1.5", "5.3.6", ] os: ["ubuntu-latest", "windows-latest", "macos-latest"] runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 - uses: ilammy/msvc-dev-cmd@v1 if: ${{ !startsWith(matrix.lua_version, 'luajit-') }} - name: Setup ‘lua’ uses: jkl1337/gh-actions-lua@master with: luaVersion: ${{ matrix.lua_version }} - name: Setup ‘luarocks’ uses: jkl1337/gh-actions-luarocks@master - name: Setup dependencies run: | luarocks install busted luarocks install luacov-reporter-lcov - name: Build C++ library run: | luarocks make --no-install env: LJKIWI_LUA: ${{ startsWith(matrix.lua_version, 'luajit-') && '0' || '1' }} LJKIWI_CFFI: ${{ startsWith(matrix.lua_version, 'luajit-') && '1' || '0' }} FCOV: ${{ startsWith(matrix.os, 'ubuntu-') && '1' || '' }} # Can't assume so versions, have to update this manually below FSANITIZE: ${{ matrix.os == 'ubuntu-latest' && '1' || '' }} - name: Run busted tests run: | busted -c -v env: LD_PRELOAD: ${{ matrix.os == 'ubuntu-latest' && '/usr/lib/x86_64-linux-gnu/libasan.so.6:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/usr/lib/x86_64-linux-gnu/libubsan.so.1' || '' }} - name: Run gcov if: success() && startsWith(matrix.os, 'ubuntu-') run: | gcov -p -b -s"$(pwd)" -r *.gcda - name: generate Lua lcov test reports if: success() && !startsWith(matrix.os, 'windows-') && startsWith(matrix.lua_version, 'luajit-') run: luacov - name: Report test coverage if: success() && !startsWith(matrix.os, 'windows-') && (startsWith(matrix.lua_version, 'luajit-') || startsWith(matrix.os, 'ubuntu-')) continue-on-error: true uses: coverallsapp/github-action@v2 with: flag-name: run ${{ join(matrix.*, ' - ') }} finish: if: always() needs: busted runs-on: ubuntu-latest steps: - name: Close coveralls build uses: coverallsapp/github-action@v2 with: parallel-finished: true