Learn R Programming

⚠️There's a newer version (0.4.0) of this package.Take me there.

tic

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:

  1. Deployment to a Git repository is greatly simplified. Update your repository with results from the CI build.

  2. 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.

  3. Workflow specification in a single .R file, regardless of CI system used.
    Forget about .yml files or web browser configurations.

Installation

It can be installed from GitHub with:

# install.packages("remotes")
remotes::install_github("ropenscilabs/tic")

Setup

By calling 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
  • Running rcmdcheck::rcmdcheck()
  • Building of a pkgdown site, with deployment to the docs/ directory of the master branch
  • Running a code coverage and uploading it to codecov.io

See the Getting Started vignette for more information and links to minimal example repositories for various R projects (package, blogdown, bookdown and more).

Examples

All examples listed here work with Travis, some work with AppVeyor too. The badges link to the most recent build of the master branch.

Vignettes

Limitations

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.


Copy Link

Version

Version

0.2.13.9017

License

GPL (>= 2)

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

September 8th, 2021

Functions in tic (0.2.13.9017)

prepare_all_stages

Prepare all stages
step_add_to_drat

Step: Add built package to a drat
step_add_to_known_hosts

Step: Add to known hosts
step_build_bookdown

Step: Build a bookdown book
step_build_pkgdown

Step: Build pkgdown documentation
run_stage

Run a stage
dsl

tic's domain-specific language
stages

Predefined stages
step_rcmdcheck

Step: Check a package
step_push_deploy

Step: Setup and perform push deploy
repo

Shortcuts for accessing CRAN-like repositories
use_tic

Initialize CI testing using tic
step_install_pkg

Step: Install packages
run_all_stages

Emulate a CI run locally
get_public_key

Get public RSA key
step_setup_ssh

Step: Setup SSH
step_test_ssh

Step: Test SSH connection
step_setup_push_deploy

Step: Setup push deploy
macro

Macros
step_run_code

Step: Run arbitrary R code
reexports

Objects exported from other packages
step_hello_world

Step: Hello, world!
tic-package

tic: Tasks Integrating Continuously: CI-Agnostic Workflow Definitions
step_write_text_file

Step: Write a text file
step_do_push_deploy

Step: Perform push deploy
step_install_ssh_keys

Step: Install an SSH key
Deprecated

Deprecated functions
do_pkgdown

Build pkgdown documentation
do_package_checks

Add default checks for packages
do_bookdown

Build a bookdown book
dsl_get

Storage for stages and steps
encode_private_key

Encode a private RSA key
ci

The current CI environment
base64serialize

Helpers for converting R objects to strings and back
TicStep

The base class for all steps