diff options
author | Cristian Adam <cristian.adam@qt.io> | 2020-09-25 12:53:07 +0200 |
---|---|---|
committer | Cristian Adam <cristian.adam@qt.io> | 2020-09-25 12:42:59 +0000 |
commit | 828266d8a10f6865ed5ce4b2021a99867fd39dca (patch) | |
tree | 15e1d6f1336934f20594dc1d873bcc8465102b1e /.github | |
parent | dba75f3d2cadbaf4e602555861e88d994f5a7805 (diff) |
GitHub Actions: Mark compiler errors, and test failures as annotations
The annotations are visible for everybody, and very convenient for looking
after errors / test failures.
Change-Id: Idb7d1e63b3611063268b4e6e490195ccb9d2b221
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/build_cmake.yml | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml index 88cc043f6d..138f9779bd 100644 --- a/.github/workflows/build_cmake.yml +++ b/.github/workflows/build_cmake.yml @@ -6,7 +6,7 @@ env: QT_VERSION: 5.15.1 CLANG_VERSION: 100 ELFUTILS_VERSION: 0.175 - CMAKE_VERSION: 3.18.2 + CMAKE_VERSION: 3.18.3 NINJA_VERSION: 1.10.1 BUILD_TYPE: Release CCACHE_VERSION: 3.7.7 @@ -53,7 +53,6 @@ jobs: git submodule update --init tests/unit/unittest/3rdparty/googletest - name: Download Ninja and CMake - id: cmake_and_ninja shell: cmake -P {0} run: | set(cmake_version "$ENV{CMAKE_VERSION}") @@ -81,9 +80,10 @@ jobs: file(DOWNLOAD "${cmake_url}" ./cmake.zip SHOW_PROGRESS) execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ./cmake.zip) - # Save the path for other steps + # Add to PATH environment variable file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}/${cmake_dir}" cmake_dir) - message("::set-output name=cmake_dir::${cmake_dir}") + message("::add-path::$ENV{GITHUB_WORKSPACE}") + message("::add-path::${cmake_dir}") if (NOT "${{ runner.os }}" STREQUAL "Windows") execute_process( @@ -350,12 +350,6 @@ jobs: endforeach() endif() - set(path_separator ":") - if ("${{ runner.os }}" STREQUAL "Windows") - set(path_separator ";") - endif() - set(ENV{PATH} "${{ steps.cmake_and_ninja.outputs.cmake_dir }}${path_separator}$ENV{GITHUB_WORKSPACE}${path_separator}$ENV{PATH}") - set(ENV{NINJA_STATUS} "[%f/%t %o/sec] ") file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}" ccache_basedir) @@ -401,9 +395,15 @@ jobs: --zip-infix=-${{ matrix.config.artifact }}-${{ github.run_id }} RESULT_VARIABLE result COMMAND_ECHO STDOUT + OUTPUT_VARIABLE output + ERROR_VARIABLE output + ECHO_OUTPUT_VARIABLE ECHO_ERROR_VARIABLE ) if (NOT result EQUAL 0) - message(FATAL_ERROR "Bad exit status") + string(REGEX MATCH "FAILED:.*$" error_message "${output}") + string(REPLACE "\n" "%0A" error_message "${error_message}") + message("::error::${error_message}") + message(FATAL_ERROR "Build failed") endif() execute_process(COMMAND ccache -s) @@ -417,20 +417,18 @@ jobs: set(ENV{CTEST_OUTPUT_ON_FAILURE} "ON") execute_process( - COMMAND ${{ steps.cmake_and_ninja.outputs.cmake_dir }}/ctest -j ${N} + COMMAND ctest -j ${N} WORKING_DIRECTORY build/build RESULT_VARIABLE result - OUTPUT_VARIABLE stdout - ERROR_VARIABLE stdout + OUTPUT_VARIABLE output + ERROR_VARIABLE output + ECHO_OUTPUT_VARIABLE ECHO_ERROR_VARIABLE ) - - message("${stdout}") - if (NOT result EQUAL 0) - string(REGEX MATCH "[0-9]+% tests.*[0-9.]+ sec" pass_rate "${stdout}") - + string(REGEX MATCH "[0-9]+% tests.*[0-9.]+ sec.*$" test_results "${output}") + string(REPLACE "\n" "%0A" test_results "${test_results}") # Do not fail on ctest failure - message("::warning::${pass_rate}") + message("::warning::${test_results}") endif() - name: Upload |