Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(git2r)
- r <- repository()
- current_branches <- branches(r)
- vars <- expand.grid(list(language = "r",
- sudo = c("required", "false"),
- dist = c("precise", "trusty"),
- r = c("3.1", "3.2", "devel"),
- r_binary_packages = c(NA_character_, "withr"),
- use_bioc = c(NA_character_, "true")),
- stringsAsFactors = FALSE)
- # add rows for r-devel for devel builds
- devel_bioc <- subset(vars, r == 'devel' & use_bioc == 'true')
- devel_bioc$use_bioc_devel = "true"
- vars <- plyr::rbind.fill(vars, devel_bioc)
- # Add a Bioconductor package to the DESCRIPTION if use_bioc is true
- desc_txt <- readLines("DESCRIPTION")
- desc_txt[grepl("^Suggests:", desc_txt)] <- "Suggests: knitr, BiocParallel"
- use_bioc <- !is.na(vars$use_bioc) & vars$use_bioc == 'true'
- vars$extra_content <- list(list())
- vars$extra_content[use_bioc] <- list(list(DESCRIPTION = desc_txt))
- vars[is.na(vars)] <- NA_character_
- content <- function(data) {
- paste0(names(data), ": ", data, collapse = "\n")
- }
- name <- function(data) {
- paste0(names(data), "_", data, collapse = "-")
- }
- commit_msg <- function(data) {
- paste0(names(data), ": ", data, collapse = ", ")
- }
- write_branch <- function(data) {
- data <- Filter(Negate(is.na), data)
- extra_content <- data$extra_content[[1]]
- data$extra_content <- NULL
- con <- content(data)
- nme <- name(data)
- if (!nme %in% names(branches(r))) {
- branch_create(commits(r)[[1]], nme)
- } else {
- checkout(r, nme)
- }
- writeLines(con, ".travis.yml")
- add(r, ".travis.yml")
- for (i in seq_along(extra_content)) {
- path <- names(extra_content)[i]
- txt <- extra_content[[i]]
- writeLines(txt, path)
- add(r, path)
- }
- commit <- commit(r, commit_msg(data))
- }
- for (i in seq_len(NROW(vars))) {
- write_branch(vars[i, ])
- }
- checkout(r, "master")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement