---
title: "tic & CI Client Packages - An Overview"
author: "Patrick Schratz, Kirill Müller"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{tic & CI Client Packages - An Overview}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r setup, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

## Introduction

Most of the setup work that needs to be done for specific CI systems is handled by the respective R client packages such as [{circle}](https://docs.ropensci/circle/).
These enable the repo on the CI system and ensure that deployment permissions are granted.

After everything has been set up, the rest of the work goes to {tic}.

- Creation of the CI YAML templates.
- Which steps are going to be run.
- Deployment: Yes/no

In essence, `tic::use_tic()` is a wrapper for creating CI YAML templates and setting up deployment on the CI systems which is powered by the client packages.

## CI Client Packages

Currently, the following CI client packages exist:

- [{circle}]((https://docs.ropensci.org/circle/))

The client package for _travis_ was archived in November 2020.

For _Appveyor_ there is [r-appveyor](https://github.com/krlmlr/r-appveyor) from Kirill Müller.
This project makes it possible in the first place to run R checks on Appveyor but does not provide access to the _Appveyor_ API and is not used by {tic} currently.
Also, it does not come with automation for deployment setup.
Appveyor support has been removed from {tic} in December 2020 due to a strong focus on GitHub Actions.

For _GitHub Actions_ there is [{ghactions}](https://github.com/maxheld83/ghactions) from Max Held which comes with functions helping to set up YAML templates and other convenience.
It does not provide API access and is not used by {tic} currently.
