aboutsummaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorCristian Adam <cristian.adam@qt.io>2020-09-25 12:53:07 +0200
committerCristian Adam <cristian.adam@qt.io>2020-09-25 12:42:59 +0000
commit828266d8a10f6865ed5ce4b2021a99867fd39dca (patch)
tree15e1d6f1336934f20594dc1d873bcc8465102b1e /.github
parentdba75f3d2cadbaf4e602555861e88d994f5a7805 (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.yml38
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