diff options
-rw-r--r-- | .github/workflows/ci.yml | 44 | ||||
-rw-r--r-- | ci/common/suite.sh | 25 | ||||
-rwxr-xr-x | ci/run_lint.sh | 36 | ||||
-rwxr-xr-x | ci/run_tests.sh | 47 |
4 files changed, 109 insertions, 43 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aa77689d9f..f357535336 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,8 +43,25 @@ jobs: - name: Build third-party run: ./ci/before_script.sh - - name: Run lint - run: ./ci/script.sh + - if: "!cancelled()" + 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 if: ${{ success() }} @@ -126,8 +143,7 @@ jobs: brew install automake ccache perl cpanminus ninja - name: Setup interpreter packages - run: | - ./ci/install.sh + run: ./ci/install.sh - name: Cache dependencies uses: actions/cache@v2 @@ -140,8 +156,24 @@ jobs: - name: Build third-party run: ./ci/before_script.sh - - name: Build and test - run: ./ci/script.sh + - name: Build + 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 if: ${{ success() }} diff --git a/ci/common/suite.sh b/ci/common/suite.sh index f33f8b89d1..5110e22ec2 100644 --- a/ci/common/suite.sh +++ b/ci/common/suite.sh @@ -11,37 +11,17 @@ FAIL_SUMMARY="" END_MARKER="$BUILD_DIR/.tests_finished" 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() { FAILED=0 rm -f "${END_MARKER}" local suite_name="$1" export NVIM_TEST_CURRENT_SUITE="${NVIM_TEST_CURRENT_SUITE}/$suite_name" - ci_fold "start" "$suite_name" } exit_suite() { if test $FAILED -ne 0 ; then echo "Suite ${NVIM_TEST_CURRENT_SUITE} failed, summary:" echo "${FAIL_SUMMARY}" - else - ci_fold "end" "" fi export NVIM_TEST_CURRENT_SUITE="${NVIM_TEST_CURRENT_SUITE%/*}" FAILED=0 @@ -66,6 +46,11 @@ ended_successfully() { if test -f "${FAIL_SUMMARY_FILE}" ; then echo 'Test failed, complete summary:' cat "${FAIL_SUMMARY_FILE}" + + if [[ "$GITHUB_ACTIONS" == "true" ]]; then + rm -f "$FAIL_SUMMARY_FILE" + fi + return 1 fi if ! test -f "${END_MARKER}" ; then diff --git a/ci/run_lint.sh b/ci/run_lint.sh index 607ffa233a..2fea7a40c0 100755 --- a/ci/run_lint.sh +++ b/ci/run_lint.sh @@ -8,10 +8,34 @@ CI_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "${CI_DIR}/common/build.sh" source "${CI_DIR}/common/suite.sh" -run_suite 'make clint-full' 'clint' -run_suite 'make lualint' 'lualint' -run_suite 'make pylint' 'pylint' -run_suite 'make shlint' 'shlint' -run_suite 'make check-single-includes' 'single-includes' +if [[ "$GITHUB_ACTIONS" != "true" ]]; then + run_suite 'make clint-full' 'clint' + run_suite 'make lualint' 'lualint' + run_suite 'make pylint' 'pylint' + 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 diff --git a/ci/run_tests.sh b/ci/run_tests.sh index 1baeb090a8..ae85246ab6 100755 --- a/ci/run_tests.sh +++ b/ci/run_tests.sh @@ -8,17 +8,42 @@ source "${CI_DIR}/common/build.sh" source "${CI_DIR}/common/test.sh" source "${CI_DIR}/common/suite.sh" -run_suite 'build_nvim' 'build' -if test "$CLANG_SANITIZER" != "TSAN"; then - # 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 +if [[ "$GITHUB_ACTIONS" != "true" ]]; then + run_suite 'build_nvim' 'build' + + if test "$CLANG_SANITIZER" != "TSAN"; then + # 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 - run_suite run_functionaltests functionaltests -fi -run_suite run_oldtests oldtests -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 |