ci: test each module separately #1659
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run tests | ||
on: | ||
push: | ||
branches-ignore: [ sync, stable ] | ||
paths: [ 'colors/**', 'lua/**', 'tests/**' ] | ||
pull_request: | ||
branches-ignore: [ sync, stable ] | ||
paths: [ 'colors/**', 'lua/**', 'tests/**' ] | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.actor }} | ||
cancel-in-progress: true | ||
jobs: | ||
test: | ||
name: Run tests | ||
timeout-minutes: 15 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-latest] | ||
neovim_version: ['v0.8.3', 'v0.9.5', 'v0.10.1', 'nightly'] | ||
include: | ||
- os: macos-latest | ||
neovim_version: v0.10.1 | ||
- os: windows-latest | ||
neovim_version: v0.10.1 | ||
runs-on: ${{ matrix.os }} | ||
name: Test (${{ matrix.os }}, ${{ matrix.neovim_version }}) | ||
steps: | ||
- name: Get Previous Run Status | ||
id: prev_attempt_is_fail | ||
if: ${{ !cancelled() }} | ||
uses: actions/github-script@v7 | ||
with: | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
script: | | ||
var attempt_number = ${{ github.run_attempt }} - 1; | ||
if (attempt_number < 1) return; | ||
const { data: prev_jobs } = await github.rest.actions.listJobsForWorkflowRunAttempt({ | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
run_id: context.runId, | ||
attempt_number: attempt_number, | ||
}); | ||
var cur_job_name = 'Test (${{ matrix.os }}, ${{ matrix.neovim_version }})' | ||
for (var j of prev_jobs.jobs) { | ||
if (j.name === cur_job_name) { | ||
for (var s of j.steps) { | ||
var is_fail = !(s.conclusion === 'success' || s.conclusion === 'skipped'); | ||
core.setOutput(s.name, is_fail); | ||
} | ||
} | ||
} | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- uses: actions/checkout@v4 | ||
- name: Setup neovim | ||
uses: rhysd/action-setup-vim@v1 | ||
with: | ||
neovim: true | ||
version: ${{ matrix.neovim_version }} | ||
- name: ai | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.ai == 'true') }} | ||
env: | ||
FILE: tests/test_ai.lua | ||
run: make test_file | ||
- name: align | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.align == 'true') }} | ||
env: | ||
FILE: tests/test_align.lua | ||
run: make test_file | ||
- name: animate | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.animate == 'true') }} | ||
env: | ||
FILE: tests/test_animate.lua | ||
run: make test_file | ||
- name: base16 | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.base16 == 'true') }} | ||
env: | ||
FILE: tests/test_base16.lua | ||
run: make test_file | ||
- name: basics | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.basics == 'true') }} | ||
env: | ||
FILE: tests/test_basics.lua | ||
run: make test_file | ||
- name: bracketed | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.bracketed == 'true') }} | ||
env: | ||
FILE: tests/test_bracketed.lua | ||
run: make test_file | ||
- name: bufremove | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.bufremove == 'true') }} | ||
env: | ||
FILE: tests/test_bufremove.lua | ||
run: make test_file | ||
- name: clue | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.clue == 'true') }} | ||
env: | ||
FILE: tests/test_clue.lua | ||
run: make test_file | ||
- name: colors | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.colors == 'true') }} | ||
env: | ||
FILE: tests/test_colors.lua | ||
run: make test_file | ||
- name: comment | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.comment == 'true') }} | ||
env: | ||
FILE: tests/test_comment.lua | ||
run: make test_file | ||
- name: completion | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.completion == 'true') }} | ||
env: | ||
FILE: tests/test_completion.lua | ||
run: make test_file | ||
- name: cursorword | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.cursorword == 'true') }} | ||
env: | ||
FILE: tests/test_cursorword.lua | ||
run: make test_file | ||
- name: deps | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.deps == 'true') }} | ||
env: | ||
FILE: tests/test_deps.lua | ||
run: make test_file | ||
- name: diff | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.diff == 'true') }} | ||
env: | ||
FILE: tests/test_diff.lua | ||
run: make test_file | ||
- name: doc | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.doc == 'true') }} | ||
env: | ||
FILE: tests/test_doc.lua | ||
run: make test_file | ||
- name: extra | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.extra == 'true') }} | ||
env: | ||
FILE: tests/test_extra.lua | ||
run: make test_file | ||
- name: files | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.files == 'true') }} | ||
env: | ||
FILE: tests/test_files.lua | ||
run: make test_file | ||
- name: fuzzy | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.fuzzy == 'true') }} | ||
env: | ||
FILE: tests/test_fuzzy.lua | ||
run: make test_file | ||
- name: git | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.git == 'true') }} | ||
env: | ||
FILE: tests/test_git.lua | ||
run: make test_file | ||
- name: hipatterns | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.hipatterns == 'true') }} | ||
env: | ||
FILE: tests/test_hipatterns.lua | ||
run: make test_file | ||
- name: hues | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.hues == 'true') }} | ||
env: | ||
FILE: tests/test_hues.lua | ||
run: make test_file | ||
- name: icons | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.icons == 'true') }} | ||
env: | ||
FILE: tests/test_icons.lua | ||
run: make test_file | ||
- name: indentscope | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.indentscope == 'true') }} | ||
env: | ||
FILE: tests/test_indentscope.lua | ||
run: make test_file | ||
- name: jump | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.jump == 'true') }} | ||
env: | ||
FILE: tests/test_jump.lua | ||
run: make test_file | ||
- name: jump2d | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.jump2d == 'true') }} | ||
env: | ||
FILE: tests/test_jump2d.lua | ||
run: make test_file | ||
- name: map | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.map == 'true') }} | ||
env: | ||
FILE: tests/test_map.lua | ||
run: make test_file | ||
- name: misc | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.misc == 'true') }} | ||
env: | ||
FILE: tests/test_misc.lua | ||
run: make test_file | ||
- name: move | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.move == 'true') }} | ||
env: | ||
FILE: tests/test_move.lua | ||
run: make test_file | ||
- name: notify | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.notify == 'true') }} | ||
env: | ||
FILE: tests/test_notify.lua | ||
run: make test_file | ||
- name: operators | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.operators == 'true') }} | ||
env: | ||
FILE: tests/test_operators.lua | ||
run: make test_file | ||
- name: pairs | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.pairs == 'true') }} | ||
env: | ||
FILE: tests/test_pairs.lua | ||
run: make test_file | ||
- name: pick | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.pick == 'true') }} | ||
env: | ||
FILE: tests/test_pick.lua | ||
run: make test_file | ||
- name: sessions | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.sessions == 'true') }} | ||
env: | ||
FILE: tests/test_sessions.lua | ||
run: make test_file | ||
- name: splitjoin | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.splitjoin == 'true') }} | ||
env: | ||
FILE: tests/test_splitjoin.lua | ||
run: make test_file | ||
- name: starter | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.starter == 'true') }} | ||
env: | ||
FILE: tests/test_starter.lua | ||
run: make test_file | ||
- name: statusline | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.statusline == 'true') }} | ||
env: | ||
FILE: tests/test_statusline.lua | ||
run: make test_file | ||
- name: surround | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.surround == 'true') }} | ||
env: | ||
FILE: tests/test_surround.lua | ||
run: make test_file | ||
- name: tabline | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.tabline == 'true') }} | ||
env: | ||
FILE: tests/test_tabline.lua | ||
run: make test_file | ||
- name: test | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.test == 'true') }} | ||
env: | ||
FILE: tests/test_test.lua | ||
run: make test_file | ||
- name: trailspace | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.trailspace == 'true') }} | ||
env: | ||
FILE: tests/test_trailspace.lua | ||
run: make test_file | ||
- name: visits | ||
if: ${{ !cancelled() && (github.run_attempt == '1' || steps.prev_attempt_is_fail.outputs.visits == 'true') }} | ||
env: | ||
FILE: tests/test_visits.lua | ||
run: make test_file |