testthat::context("Build") Sys.setlocale('LC_ALL','C') # Simulate the creation of a new project testthat::test_that("A Simple Article can be built", { testthat::skip_on_cran() # Save working directory original_wd <- getwd() # Get a temporary working directory wd <- tempfile("example") # Simulate File > New File > R Markdown... > From Template > Simple Article rmarkdown::draft(wd, template="simple_article", package="memoiR", edit=FALSE) # Go to temp directory setwd(wd) # Make it the current project usethis::proj_set(path = ".", force = TRUE) ## Sequence of actions to build a complete project # Build .gitignore build_gitignore() ## Activate source control, edit your files, commit # Build README build_readme() ## Scenario 1: no continuous integration # render: knit to downcute (interactively: click the Knit button) if (require("rmdformats")) rmarkdown::render(input=list.files(pattern="*.Rmd"), output_format="rmdformats::downcute") # render: knit to pdf (interactively: click the Knit button) rmarkdown::render(input=list.files(pattern="*.Rmd"), output_format="bookdown::pdf_book") # Build GitHub Pages build_githubpages() ## Commit and push. Outputs will be in /docs of the master branch. ## Scenario 2: continuous integration # Build GitHub Actions workflow build_ghworkflow() ## Commit and push: GH Actions will render the documents and store them ## in the gh-pages branch. ## End of the example: cleanup # Return to the original working directory and clean up setwd(original_wd) unlink(wd, recursive=TRUE) }) testthat::test_that("A book can be built", { testthat::skip_on_cran() # Save working directory original_wd <- getwd() # Get a temporary working directory wd <- tempfile("example") # Simulate File > New File > R Markdown... > From Template > Memoir rmarkdown::draft(wd, template="memoir", package="memoiR", edit=FALSE) # Go to temp directory setwd(wd) # Make it the current project usethis::proj_set(path = ".", force = TRUE) # Delete the useless skeleton file tmpdir_vec <- strsplit(getwd(), "/", fixed=TRUE)[[1]] skeleton_name <- tmpdir_vec[length(tmpdir_vec)] unlink(paste(skeleton_name, ".Rmd", sep="")) ## Sequence of actions to build a complete project # Build .gitignore build_gitignore() ## Activate source control, edit your files, commit # Build README build_readme() ## Scenario 1: no continuous integration # render: knit (interactively: click the Build the Book button) bookdown::render_book(input="index.Rmd", output_format="bookdown::pdf_book") bookdown::render_book(input="index.Rmd", output_format="bookdown::gitbook") ## Commit and push. Outputs will be in /docs of the master branch. ## Scenario 2: continuous integration # Build GitHub Actions workflow build_ghworkflow() ## Commit and push: GH Actions will render the documents and store them ## in the gh-pages branch. ## End of the example: cleanup # Return to the original working directory and clean up setwd(original_wd) unlink(wd, recursive=TRUE) })