Fix flaky Node.js CI with cache (#1443)

This commit is contained in:
Bart Louwers
2023-08-01 12:38:06 +02:00
committed by GitHub
parent 799afb9992
commit 1c44705685
3 changed files with 19 additions and 22 deletions

View File

@@ -169,6 +169,13 @@ jobs:
${{ matrix.runs-on }}-${{ env.BUILDTYPE }}-${{ github.job }}-${{ github.ref }}
${{ matrix.runs-on }}-${{ env.BUILDTYPE }}-${{ github.job }}
- name: Cache cmake-node-module deps
uses: actions/cache@v3
with:
# downloaded with platform/node/cmake/module.cmake
path: build/headers
key: ${{ runner.os }}-${{ runner.arch }}-cmake-node-module-deps
- name: Configure maplibre-native (MacOS)
if: runner.os == 'MacOS'
run: |

View File

@@ -1,5 +1,6 @@
set(NODE_MODULE_MINIMUM_ABI 83) # Minimum supported Node.js version: 14
set(NODE_MODULE_CACHE_DIR ${CMAKE_SOURCE_DIR}/build/headers)
include(${CMAKE_CURRENT_LIST_DIR}/cmake/module.cmake)
add_node_module(

View File

@@ -15,28 +15,17 @@ function(_node_module_download _TYPE _URL _FILE)
string(RANDOM LENGTH 32 _TMP)
set(_TMP "${CMAKE_BINARY_DIR}/${_TMP}")
message(STATUS "[Node.js] Downloading ${_TYPE}...")
set(_RETRIES 5)
foreach(_RETRY_NUMBER 1 RANGE ${_RETRIES})
file(DOWNLOAD "${_URL}" "${_TMP}" STATUS _STATUS TLS_VERIFY ON)
list(GET _STATUS 0 _STATUS_CODE)
if(NOT _STATUS_CODE EQUAL 0)
file(REMOVE "${_TMP}")
list(GET _STATUS 1 _STATUS_MESSAGE)
if(_RETRY_NUMBER EQUAL ${_RETRIES})
message(FATAL_ERROR "[Node.js] Failed to download ${_TYPE}: ${_STATUS_MESSAGE}")
else()
message(WARNING "[Node.js] Failed to download ${_TYPE}: ${_STATUS_MESSAGE}. Trying again...")
endif()
else()
get_filename_component(_DIR "${_FILE}" DIRECTORY)
file(MAKE_DIRECTORY "${_DIR}")
file(RENAME "${_TMP}" "${_FILE}")
break()
endif()
endforeach()
file(DOWNLOAD "${_URL}" "${_TMP}" STATUS _STATUS TLS_VERIFY ON)
list(GET _STATUS 0 _STATUS_CODE)
if(NOT _STATUS_CODE EQUAL 0)
file(REMOVE "${_TMP}")
list(GET _STATUS 1 _STATUS_MESSAGE)
message(FATAL_ERROR "[Node.js] Failed to download ${_TYPE}: ${_STATUS_MESSAGE}")
else()
get_filename_component(_DIR "${_FILE}" DIRECTORY)
file(MAKE_DIRECTORY "${_DIR}")
file(RENAME "${_TMP}" "${_FILE}")
endif()
endfunction()