You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Jonathan Keane (Jira)" <ji...@apache.org> on 2021/12/17 15:50:00 UTC
[jira] [Created] (ARROW-15149) [R] [CI] Ensure that RSPM is responsive when using it
Jonathan Keane created ARROW-15149:
--------------------------------------
Summary: [R] [CI] Ensure that RSPM is responsive when using it
Key: ARROW-15149
URL: https://issues.apache.org/jira/browse/ARROW-15149
Project: Apache Arrow
Issue Type: Improvement
Reporter: Jonathan Keane
This might not be necessary in the long run, but we've had a few days of RSPM being intermittently accessible[1]. We could add a check [when we construct the RSPM url|https://github.com/apache/arrow/blob/master/ci/etc/rprofile] that checks the URL we're using for http response and then sets the url to NULL if it errors. Something like:
{code}
# Check the url from RSPM first
.ensure_rspm_works <- function(url) {
if (is.null(url)) {
return(NULL)
}
# check for curl, if it doens't exist, return the URL anyway
if (system("command -v curl") == 0) {
# curl to get the http response
code <- tryCatch({
system(
paste0(
'curl -s -o /dev/null -w "%{http_code}" ',
paste0(url, "/cran/latest/src/contrib/PACKAGES")
),
intern = TRUE
)
# if this errors, assume the URL works and the error was in curl
}, error = function(e) "200")
# if the response code is in the error range, then return null.
if (as.numeric(code) >= 400) {
return(NULL)
}
}
url
}
{code}
and then wrap {{.pick_cran()}} with this function at https://github.com/apache/arrow/blob/6e20c6b9d7131af41f2e979529d06e507c731373/ci/etc/rprofile#L46
[1] Here's one PR where that happened for a few days: https://github.com/apache/arrow/pull/11965
--
This message was sent by Atlassian Jira
(v8.20.1#820001)