All Projects → ropensci → Tic

ropensci / Tic

Tasks Integrating Continuously: CI-Agnostic Workflow Definitions

Programming Languages

r
7636 projects

Projects that are alternatives of or similar to Tic

travis
⛔ ARCHIVED ⛔ Set Up 'Travis' for Testing and Deployment
Stars: ✭ 61 (-54.81%)
Mutual labels:  deployment, travis-ci, continuous-integration, rstats, r-package
scikit-ci
Simpler and centralized CI configuration for Python extensions.
Stars: ✭ 15 (-88.89%)
Mutual labels:  travis-ci, continuous-integration, appveyor
HaxeCI
An example of using CI for Haxe projects.
Stars: ✭ 45 (-66.67%)
Mutual labels:  travis-ci, continuous-integration, appveyor
Ci Detector
Detect continuous integration environment and get information of current build
Stars: ✭ 138 (+2.22%)
Mutual labels:  appveyor, continuous-integration, travis-ci
cpp14-project-template
A simple, cross-platform, and continuously integrated C++14 project template
Stars: ✭ 64 (-52.59%)
Mutual labels:  travis-ci, continuous-integration, appveyor
firebase-ci
Simplified Firebase interaction for continuous integration
Stars: ✭ 71 (-47.41%)
Mutual labels:  deployment, travis-ci, continuous-integration
Bors Ng
👁 A merge bot for GitHub Pull Requests
Stars: ✭ 878 (+550.37%)
Mutual labels:  appveyor, continuous-integration, travis-ci
Ci Buildstats
Little widget to display AppVeyor, TravisCI, CircleCI, GitHub Actions or Azure Pipelines build history charts and other SVG badges.
Stars: ✭ 134 (-0.74%)
Mutual labels:  appveyor, travis-ci
Ssh
Native SSH client in R based on libssh
Stars: ✭ 111 (-17.78%)
Mutual labels:  r-package, rstats
Geojsonio
Convert many data formats to & from GeoJSON & TopoJSON
Stars: ✭ 132 (-2.22%)
Mutual labels:  r-package, rstats
Available
Check if a package name is available to use
Stars: ✭ 116 (-14.07%)
Mutual labels:  r-package, rstats
Rsuite
The most complete R development and data science platform.
Stars: ✭ 133 (-1.48%)
Mutual labels:  deployment, rstats
Starters
R Package 📦 for initializing projects for various R activities 🔩
Stars: ✭ 111 (-17.78%)
Mutual labels:  r-package, rstats
Rgbif
Interface to the Global Biodiversity Information Facility API
Stars: ✭ 113 (-16.3%)
Mutual labels:  r-package, rstats
Doctr
A tool for automatically deploying docs from Travis CI to GitHub pages.
Stars: ✭ 110 (-18.52%)
Mutual labels:  deployment, travis-ci
Gramr
RStudio Addin, function, & shiny app for the write-good linter 📝
Stars: ✭ 116 (-14.07%)
Mutual labels:  r-package, rstats
Pkgverse
📦🔭🌠 Create your own universe of packages à la tidyverse
Stars: ✭ 108 (-20%)
Mutual labels:  r-package, rstats
Umapr
UMAP dimensionality reduction in R
Stars: ✭ 115 (-14.81%)
Mutual labels:  r-package, rstats
Roomba
General purpose API response tidier
Stars: ✭ 117 (-13.33%)
Mutual labels:  r-package, rstats
Osmplotr
Data visualisation using OpenStreetMap objects
Stars: ✭ 122 (-9.63%)
Mutual labels:  r-package, rstats

tic

tic Travis build status CircleCI CRAN status codecov Lifecycle: maturing

The goal of tic is to enhance and simplify working with continuous integration (CI) systems.

The following ones are supported:

Provider R package Platforms Info
Circle CI {circle} Linux via Docker images from rocker
Github Actions {ghactions} Linux, macOS, Windows

To learn more about CI, read 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 projects (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

{tic} can be installed from GitHub with:

remotes::install_github("ropensci/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 Circle CI and Github Actions.

If only the CI YAML templates from {tic} are desired, the use_<provider>_yml() functions can be used. Refer to the complete list of options.

For an R package, the following steps will be set up for the CI workflow:

  • Installation of required dependencies for the project (dependencies are scraped from the DESCRIPTION file*)
  • Satisfying build-time dependencies of steps to be run in all CI stages (by scraping pkg::fun calls in tic.R)
  • Checking of package via rcmdcheck::rcmdcheck()
  • Creation of a pkgdown site including Github deployment
  • Running a code coverage and upload 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).

Quickstart

If you are a new user, run

tic::use_tic()

If you already use {tic} and want to configure a new CI provider, do

### Circle CI ------------------------------------------------------------------

circle::use_circle_deploy() # (optional for deployment)
tic::use_circle_yml() # optional: Change `type` arg to your liking
tic::use_tic_r("package", deploy_on = "circle")
# (all of the above in one call)
# tic::use_tic(wizard = FALSE, linux = "circle", mac = "none", windows = "none",
#              matrix = "circle", deploy = "circle")
tic::use_update_tic()

### GitHub Actions -------------------------------------------------------------

tic::use_ghactions_deploy() # (optional for deployment)
tic::use_ghactions_yml() # optional: Change `type` arg to your liking
tic::use_tic_r("package", deploy_on = "ghactions")
# (all of the above in one call)
# tic::use_tic(wizard = FALSE, linux = "ghactions", mac = "ghactions",
#              windows = "ghactions", matrix = "ghactions", deploy = "ghactions")

tic::use_tic_badge("ghactions")
tic::use_update_tic()

Good to know

We would like to mention that {tic} is a choice and sits on top of existing community efforts providing R support for various CI providers. While {tic} will prevent you from dealing/learning every CIs YAML syntax, you will have to learn {tic}'s way of specifying your tasks on CI systems.

Also, there is no way around familiarizing yourself with the basics of CI systems in general. Without this knowledge, you will also have a hard way understanding {tic}.

We also recommend to take a look at the projects providing the direct R support for each CI system (which {tic} builds upon) to gain a deeper understanding of the whole concept.

Updating

Updating of YAML templates is supported via update_yml(). See vignette "Updating Templates" for more information.

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.

The DESCRIPTION files needs to live in the project root. To simplify its creation have a look at usethis::use_package() or usethis::use_description().

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].