---
title: "cloud"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{cloud}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
```{r setup}
library(revdepcheck)
```
# Running reverse dependencies in the cloud
revdepcheck now supports running reverse dependencies in the AWS cloud, via a suite a functions all prefixed with `cloud_*()`.
This service is currently only available to be used by RStudio employees, but we hope to offer this service for the broader R community in the future.
## Setup
Set the `RSTUDIO_CLOUD_REVDEP_KEY` environment variable to the value of your cloud authentication key, provided to you by RStudio DevOps.
Add this key to your `.Renviron` file with `usethis::edit_r_environ()` and restart R.
## Usage
**Note** If you are going to be running 500+ tests and are using a development dependency (e.g. `Remote: org/pkg`) you may exhaust the GitHub API limits. A workaround is to use a 'url' remote, e.g. `Remote: url::https://github.com/org/pkg/archive/main.tar.gz`, which does not use the GitHub API.
```r
# Kickoff a new check
# The devel package is automatically built from the current
# working directory, or specify a pre-built package with `tarball`.
cloud_check()
# Follow current status of the job
cloud_status()
# Cancel a job
cloud_cancel()
# Retrieve results (if needed) and show a summary
cloud_summary()
# Retrieve results (if needed) and generate a markdown report
cloud_report()
# Retrieve details of a specfic package
cloud_details(, "pkgXYZ")
# Plot running time for each package in a job
cloud_plot()
# Email maintainers with failures
cloud_email()
# Retrieve packages that broke in a given job
cloud_broken()
# Open a web browser to the AWS job pane for the current job
cloud_browse()
# Open the browser to the AWS job for a particular package
# Useful for debugging why a particular job failed
cloud_browse(package = "xyz")
```
The functions all keep track of the most recently submitted `job_id`, so assuming you only have one job in a given R session you can call the functions without additional parameters.
Provide the `job_id` explicitly otherwise, results write to `revdep/{job_id}`.
The `cloud_*()` functions assume your current working directory is in the root directory of the package you are trying to run reverse dependencies for.
If this is not the case all `cloud_*()` functions take a `pkg` parameter, so you can specify a different directory if needed.