Tasks Integrating Continuously: CI-Agnostic Workflow Definitions
Provides a way to describe common build and deployment workflows for R-based
projects: packages, websites (e.g. blogdown, pkgdown), or data processing
(e.g. research compendia). The recipe is described independent of the
continuous integration tool used for processing the workflow (e.g.
'Travis CI' or 'AppVeyor').
The goal of tic is to enhance and simplify working with continuous integration (CI) systems like Travis CI or AppVeyor for R projects. To learn more about CI, read this blog post and our Getting Started vignette.
The most important improvements over existing solutions are:
Deployment to a Git repository is greatly simplified. Update your repository with results from the CI build.
Support for R packages and other kinds of project (bookdown, blogdown, etc.), with predefined templates. Set up your project to deploy rendered versions of your book or blog with a single push to Git.
Workflow specification in a single
.Rfile, regardless of CI system used.
.ymlfiles or web browser configurations.
It can be installed from Github with:
# install.packages("remotes") remotes::install_github("ropenscilabs/tic")
tic::use_tic() a production ready CI setup is initialized, tailored to your specific R project.
The created templates will use the providers https://travis-ci.org and https://appveyor.com.
For an R package, the following steps will be set up for the CI workflow:
- Installation of required dependencies for the project
- Satisfying build-time dependencies of steps to be run in all CI stages
- Building of a
pkgdownsite, with deployment to the
docs/directory of the
- Running a code coverage and uploading it to codecov.io
All examples listed here work with Travis, some work with AppVeyor too. The badges link to the most recent build of the master branch.
tic.covrpage: Unit test summary report.
The setup functions in this package assume Git as version control system, and GitHub as platform. Automated setup works best if the project under test is located in the root of the Git repository. Multi-project repositories are not supported, see the comment by @jwijffels for guidance to work around this limitation.
Functions in tic
|step_do_push_deploy||Step: Perform push deploy|
|run_stage||Run a stage|
|encode_private_key||Encode a private RSA key|
|prepare_all_stages||Prepare all stages|
|step_build_bookdown||Step: Build a bookdown book|
|step_add_to_known_hosts||Step: Add to known hosts|
|reexports||Objects exported from other packages|
|step_build_pkgdown||Step: Build pkgdown documentation|
|step_add_to_drat||Step: Add built package to a drat|
|step_hello_world||Step: Hello, world!|
|step_install_pkg||Step: Install packages|
|step_setup_ssh||Step: Setup SSH|
|step_install_ssh_keys||Step: Install an SSH key|
|use_tic||Initialize CI testing using tic|
|step_rcmdcheck||Step: Check a package|
|step_push_deploy||Step: Setup and perform push deploy|
|run_all_stages||Emulate a CI run locally|
|step_test_ssh||Step: Test SSH connection|
|TicStep||The base class for all steps|
|get_public_key||Get public RSA key|
|step_run_code||Step: Run arbitrary R code|
|step_write_text_file||Step: Write a text file|
|step_setup_push_deploy||Step: Setup push deploy|
|tic-package||tic: Tasks Integrating Continuously: CI-Agnostic Workflow Definitions|
|base64serialize||Helpers for converting R objects to strings and back|
|ci||The current CI environment|
|dsl_get||Storage for stages and steps|
|do_pkgdown||Build pkgdown documentation|
|dsl||tic's domain-specific language|
|repo||Shortcuts for accessing CRAN-like repositories|
|do_bookdown||Build a bookdown book|
|do_package_checks||Add default checks for packages|
Vignettes of tic
|License||GPL (>= 2)|
|Roxygen||list(markdown = TRUE)|
|Collate||'ci.R' 'appveyor.R' 'base64.R' 'dsl-storage.R' 'dsl.R' 'git2r.R' 'keys.R' 'local.R' 'macro.R' 'macro-package-checks.R' 'macro-pkgdown.R' 'macro-bookdown.R' 'mock.R' 'print.R' 'repo.R' 'run.R' 'stage.R' 'steps-base.R' 'steps-bookdown.R' 'steps-code.R' 'steps-drat.R' 'steps-git.R' 'steps-install.R' 'steps-rcmdcheck.R' 'steps-pkgdown.R' 'steps-ssh.R' 'steps-write-text-file.R' 'tic-package.R' 'travis.R' 'use_tic.R' 'utils.R'|
|imports||backports , cli , crayon , magrittr , memoise , methods , R6 , remotes , rlang , withr|
|suggests||base64enc , bookdown , callr , covr , devtools , drat , fansi , git2r , knitr , openssl , rcmdcheck , rmarkdown , testthat , travis (>= 0.2.11.9001) , usethis|
|depends||R (>= 3.0.0)|
|Contributors||Karthik Ram, Mika Braginsky, Jeroen Ooms, Patrick Schratz, rOpenSci|
Include our badge in your README