mirror of
https://github.com/neovim/neovim.git
synced 2025-10-21 09:12:07 +00:00
ci: run each test suite in a separate github step
This should help combat some of the lagginess when looking at the CI logs in the browser.
This commit is contained in:
44
.github/workflows/ci.yml
vendored
44
.github/workflows/ci.yml
vendored
@@ -43,8 +43,25 @@ jobs:
|
|||||||
- name: Build third-party
|
- name: Build third-party
|
||||||
run: ./ci/before_script.sh
|
run: ./ci/before_script.sh
|
||||||
|
|
||||||
- name: Run lint
|
- if: "!cancelled()"
|
||||||
run: ./ci/script.sh
|
name: clint
|
||||||
|
run: ./ci/run_lint.sh clint
|
||||||
|
|
||||||
|
- if: "!cancelled()"
|
||||||
|
name: lualint
|
||||||
|
run: ./ci/run_lint.sh lualint
|
||||||
|
|
||||||
|
- if: "!cancelled()"
|
||||||
|
name: pylint
|
||||||
|
run: ./ci/run_lint.sh pylint
|
||||||
|
|
||||||
|
- if: "!cancelled()"
|
||||||
|
name: shlint
|
||||||
|
run: ./ci/run_lint.sh shlint
|
||||||
|
|
||||||
|
- if: "!cancelled()"
|
||||||
|
name: single-includes
|
||||||
|
run: ./ci/run_lint.sh single-includes
|
||||||
|
|
||||||
- name: Cache dependencies
|
- name: Cache dependencies
|
||||||
if: ${{ success() }}
|
if: ${{ success() }}
|
||||||
@@ -126,8 +143,7 @@ jobs:
|
|||||||
brew install automake ccache perl cpanminus ninja
|
brew install automake ccache perl cpanminus ninja
|
||||||
|
|
||||||
- name: Setup interpreter packages
|
- name: Setup interpreter packages
|
||||||
run: |
|
run: ./ci/install.sh
|
||||||
./ci/install.sh
|
|
||||||
|
|
||||||
- name: Cache dependencies
|
- name: Cache dependencies
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
@@ -140,8 +156,24 @@ jobs:
|
|||||||
- name: Build third-party
|
- name: Build third-party
|
||||||
run: ./ci/before_script.sh
|
run: ./ci/before_script.sh
|
||||||
|
|
||||||
- name: Build and test
|
- name: Build
|
||||||
run: ./ci/script.sh
|
run: ./ci/run_tests.sh build
|
||||||
|
|
||||||
|
- if: matrix.flavor != 'tsan' && matrix.flavor != 'functionaltest-lua' && !cancelled()
|
||||||
|
name: Unittests
|
||||||
|
run: ./ci/run_tests.sh unittests
|
||||||
|
|
||||||
|
- if: matrix.flavor != 'tsan' && !cancelled()
|
||||||
|
name: Functionaltests
|
||||||
|
run: ./ci/run_tests.sh functionaltests
|
||||||
|
|
||||||
|
- if: "!cancelled()"
|
||||||
|
name: Oldtests
|
||||||
|
run: ./ci/run_tests.sh oldtests
|
||||||
|
|
||||||
|
- if: "!cancelled()"
|
||||||
|
name: Install nvim
|
||||||
|
run: ./ci/run_tests.sh install_nvim
|
||||||
|
|
||||||
- name: Cache dependencies
|
- name: Cache dependencies
|
||||||
if: ${{ success() }}
|
if: ${{ success() }}
|
||||||
|
@@ -11,37 +11,17 @@ FAIL_SUMMARY=""
|
|||||||
END_MARKER="$BUILD_DIR/.tests_finished"
|
END_MARKER="$BUILD_DIR/.tests_finished"
|
||||||
FAIL_SUMMARY_FILE="$BUILD_DIR/.test_errors"
|
FAIL_SUMMARY_FILE="$BUILD_DIR/.test_errors"
|
||||||
|
|
||||||
ci_fold() {
|
|
||||||
if test "$GITHUB_ACTIONS" = "true"; then
|
|
||||||
local action="$1"
|
|
||||||
local name="$2"
|
|
||||||
case "$action" in
|
|
||||||
start)
|
|
||||||
echo "::group::${name}"
|
|
||||||
;;
|
|
||||||
end)
|
|
||||||
echo "::endgroup::"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
:;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
enter_suite() {
|
enter_suite() {
|
||||||
FAILED=0
|
FAILED=0
|
||||||
rm -f "${END_MARKER}"
|
rm -f "${END_MARKER}"
|
||||||
local suite_name="$1"
|
local suite_name="$1"
|
||||||
export NVIM_TEST_CURRENT_SUITE="${NVIM_TEST_CURRENT_SUITE}/$suite_name"
|
export NVIM_TEST_CURRENT_SUITE="${NVIM_TEST_CURRENT_SUITE}/$suite_name"
|
||||||
ci_fold "start" "$suite_name"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exit_suite() {
|
exit_suite() {
|
||||||
if test $FAILED -ne 0 ; then
|
if test $FAILED -ne 0 ; then
|
||||||
echo "Suite ${NVIM_TEST_CURRENT_SUITE} failed, summary:"
|
echo "Suite ${NVIM_TEST_CURRENT_SUITE} failed, summary:"
|
||||||
echo "${FAIL_SUMMARY}"
|
echo "${FAIL_SUMMARY}"
|
||||||
else
|
|
||||||
ci_fold "end" ""
|
|
||||||
fi
|
fi
|
||||||
export NVIM_TEST_CURRENT_SUITE="${NVIM_TEST_CURRENT_SUITE%/*}"
|
export NVIM_TEST_CURRENT_SUITE="${NVIM_TEST_CURRENT_SUITE%/*}"
|
||||||
FAILED=0
|
FAILED=0
|
||||||
@@ -66,6 +46,11 @@ ended_successfully() {
|
|||||||
if test -f "${FAIL_SUMMARY_FILE}" ; then
|
if test -f "${FAIL_SUMMARY_FILE}" ; then
|
||||||
echo 'Test failed, complete summary:'
|
echo 'Test failed, complete summary:'
|
||||||
cat "${FAIL_SUMMARY_FILE}"
|
cat "${FAIL_SUMMARY_FILE}"
|
||||||
|
|
||||||
|
if [[ "$GITHUB_ACTIONS" == "true" ]]; then
|
||||||
|
rm -f "$FAIL_SUMMARY_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
if ! test -f "${END_MARKER}" ; then
|
if ! test -f "${END_MARKER}" ; then
|
||||||
|
@@ -8,10 +8,34 @@ CI_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|||||||
source "${CI_DIR}/common/build.sh"
|
source "${CI_DIR}/common/build.sh"
|
||||||
source "${CI_DIR}/common/suite.sh"
|
source "${CI_DIR}/common/suite.sh"
|
||||||
|
|
||||||
run_suite 'make clint-full' 'clint'
|
if [[ "$GITHUB_ACTIONS" != "true" ]]; then
|
||||||
run_suite 'make lualint' 'lualint'
|
run_suite 'make clint-full' 'clint'
|
||||||
run_suite 'make pylint' 'pylint'
|
run_suite 'make lualint' 'lualint'
|
||||||
run_suite 'make shlint' 'shlint'
|
run_suite 'make pylint' 'pylint'
|
||||||
run_suite 'make check-single-includes' 'single-includes'
|
run_suite 'make shlint' 'shlint'
|
||||||
|
run_suite 'make check-single-includes' 'single-includes'
|
||||||
|
|
||||||
end_tests
|
end_tests
|
||||||
|
else
|
||||||
|
case "$1" in
|
||||||
|
clint)
|
||||||
|
run_suite 'make clint-full' 'clint'
|
||||||
|
;;
|
||||||
|
lualint)
|
||||||
|
run_suite 'make lualint' 'lualint'
|
||||||
|
;;
|
||||||
|
pylint)
|
||||||
|
run_suite 'make pylint' 'pylint'
|
||||||
|
;;
|
||||||
|
shlint)
|
||||||
|
run_suite 'make shlint' 'shlint'
|
||||||
|
;;
|
||||||
|
single-includes)
|
||||||
|
run_suite 'make check-single-includes' 'single-includes'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
:;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
end_tests
|
||||||
|
fi
|
||||||
|
@@ -8,17 +8,42 @@ source "${CI_DIR}/common/build.sh"
|
|||||||
source "${CI_DIR}/common/test.sh"
|
source "${CI_DIR}/common/test.sh"
|
||||||
source "${CI_DIR}/common/suite.sh"
|
source "${CI_DIR}/common/suite.sh"
|
||||||
|
|
||||||
run_suite 'build_nvim' 'build'
|
|
||||||
|
|
||||||
if test "$CLANG_SANITIZER" != "TSAN"; then
|
if [[ "$GITHUB_ACTIONS" != "true" ]]; then
|
||||||
# Additional threads are only created when the builtin UI starts, which
|
run_suite 'build_nvim' 'build'
|
||||||
# doesn't happen in the unit/functional tests
|
|
||||||
if test "${FUNCTIONALTEST}" != "functionaltest-lua"; then
|
if test "$CLANG_SANITIZER" != "TSAN"; then
|
||||||
run_suite run_unittests unittests
|
# Additional threads are only created when the builtin UI starts, which
|
||||||
|
# doesn't happen in the unit/functional tests
|
||||||
|
if test "${FUNCTIONALTEST}" != "functionaltest-lua"; then
|
||||||
|
run_suite run_unittests unittests
|
||||||
|
fi
|
||||||
|
run_suite run_functionaltests functionaltests
|
||||||
fi
|
fi
|
||||||
run_suite run_functionaltests functionaltests
|
run_suite run_oldtests oldtests
|
||||||
fi
|
run_suite install_nvim install_nvim
|
||||||
run_suite run_oldtests oldtests
|
|
||||||
run_suite install_nvim install_nvim
|
|
||||||
|
|
||||||
end_tests
|
end_tests
|
||||||
|
else
|
||||||
|
case "$1" in
|
||||||
|
build)
|
||||||
|
run_suite 'build_nvim' 'build'
|
||||||
|
;;
|
||||||
|
unittests)
|
||||||
|
run_suite 'run_unittests' 'unittests'
|
||||||
|
;;
|
||||||
|
functionaltests)
|
||||||
|
run_suite 'run_functionaltests' 'functionaltests'
|
||||||
|
;;
|
||||||
|
oldtests)
|
||||||
|
run_suite 'run_oldtests' 'oldtests'
|
||||||
|
;;
|
||||||
|
install_nvim)
|
||||||
|
run_suite 'install_nvim' 'install_nvim'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
:;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
end_tests
|
||||||
|
fi
|
||||||
|
Reference in New Issue
Block a user