mirror of
https://github.com/kristoferssolo/telescope-frecency.nvim.git
synced 2025-10-21 20:10:38 +00:00
* refactor: unite logic for finder & async_finder * chore: fix types * chore: add sleep to show results at first * refactor: fix to find results separatedly * test: remove unnecessary ones and fix others * test: add matrix for 0.9.x & Windows * test: use forked plenary.log for Windows * test: fix to use strptime in Windows * test: run again if segmentation fault in Windows * test: loosen timeout for Perl * test: use the latest plenary.nvim again * chore: fix types * chore: change variable name * feat: watch changes of DB to reload * chore: add comments to steps * test: copy whole modules for testing in Windows * fix: make valid paths for Windows * test: add tests for Native * test: use robust way to calculate time vim.fn.strptime cannot be used in Lua loop * chore: fix comments * refactor: simplify the code * test: loosen condition to detect failures * test: disable some logging Many loggings make the test fail. * test: run tests sequentially in Windows * test: loosen timeout not to fail on Windows
82 lines
2.6 KiB
YAML
82 lines
2.6 KiB
YAML
name: CI
|
|
on:
|
|
- push
|
|
- pull_request
|
|
jobs:
|
|
test:
|
|
name: Run tests
|
|
strategy:
|
|
matrix:
|
|
os:
|
|
- ubuntu-latest
|
|
- macos-latest
|
|
- windows-latest
|
|
version:
|
|
- v0.9.2
|
|
- v0.9.1
|
|
- v0.9.0
|
|
- nightly
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 15
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Checkout plenary.nvim
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: nvim-lua/plenary.nvim
|
|
path: plenary.nvim
|
|
- name: Checkout telescope.nvim
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: nvim-telescope/telescope.nvim
|
|
path: telescope.nvim
|
|
- name: Checkout sqlite.lua
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: kkharji/sqlite.lua
|
|
path: sqlite.lua
|
|
- name: Install Neovim
|
|
uses: rhysd/action-setup-vim@v1
|
|
id: nvim
|
|
with:
|
|
neovim: true
|
|
version: ${{ matrix.version }}
|
|
- name: Run tests (not for Windows)
|
|
env:
|
|
PLENARY_PATH: plenary.nvim
|
|
TELESCOPE_PATH: telescope.nvim
|
|
SQLITE_PATH: sqlite.lua
|
|
DEBUG_PLENARY: 1
|
|
EXE: ${{ steps.nvim.outputs.executable }}
|
|
run: |-
|
|
TEST_DIR=lua/frecency/tests/
|
|
MINIMAL_LUA=${TEST_DIR}minimal.lua
|
|
NVIM=$(perl -e '$_ = $ENV{EXE}; s,\\,/,g; print')
|
|
$NVIM --headless --clean -u $MINIMAL_LUA -c "PlenaryBustedDirectory $TEST_DIR {minimal_init = '$MINIMAL_LUA'}"
|
|
if: matrix.os != 'windows-latest'
|
|
- name: Run tests (for Windows)
|
|
shell: bash
|
|
env:
|
|
PLENARY_PATH: plenary.nvim
|
|
TELESCOPE_PATH: telescope.nvim
|
|
SQLITE_PATH: sqlite.lua
|
|
DEBUG_PLENARY: 1
|
|
EXE: ${{ steps.nvim.outputs.executable }}
|
|
run: |-
|
|
# HACK: This is needed because it fails to add runtimepath's.
|
|
cp -af $PLENARY_PATH/lua/plenary/ lua/
|
|
cp -af $TELESCOPE_PATH/lua/telescope/ lua/
|
|
cp -af $SQLITE_PATH/lua/sqlite/ lua/
|
|
TEST_DIR=lua/frecency/tests/
|
|
MINIMAL_LUA=${TEST_DIR}minimal.lua
|
|
NVIM=$(perl -e '$_ = $ENV{EXE}; s,\\,/,g; print')
|
|
$NVIM --headless --clean -u $MINIMAL_LUA -c "PlenaryBustedDirectory $TEST_DIR {minimal_init = '$MINIMAL_LUA', timeout = 180000, sequential = true}"
|
|
if: matrix.os == 'windows-latest'
|
|
- name: Type Check Code Base
|
|
uses: mrcjkb/lua-typecheck-action@v0.2.0
|
|
with:
|
|
checkLevel: Hint
|
|
configpath: .luarc.json
|
|
# NOTE: This step needs nix that seems not to work with SIP (macOS)
|
|
if: matrix.os == 'ubuntu-latest'
|