---
title: "Render with continuous integration (CI)"
description: >
  How to render with continuous integration
vignette: >
  %\VignetteIndexEntry{Render with CI}
  %\VignetteEngine{quarto::html}
  %\VignetteEncoding{UTF-8}
---

If you want to render and publish your multilingual book or website with CI, you must render your project with `render_book()` or `render_website()`, respectively.
Don't use Quarto's own render and publish steps.
You can find more information about publishing with CI in the [Quarto documentation](https://quarto.org/docs/publishing/ci.html).

### Site URL

When you render a project in a CI context, you can set the URL of the publishing website in an environment variable (if different from the one in the configuration file,
as a preview for instance).
You can do that with the `BABELQUARTO_CI_URL` environment variable.

### Steps for rendering

To render your project with CI, you need to follow these general steps:

* Install the necessary dependencies including Quarto and R dependencies
* Render you project using {babelquarto}'s `render_book()` or `render_website()` functions
* Publish the rendered HTML (`_site` or `_book` folder) where you deploy your project (a GitHub pages branch, Netlify, etc.)

## Examples

Here are two examples of how you could render a multilingual book with CI using GitHub Actions:

* A demo [Babelbook](https://nenuial.github.io/babelbook/) with its [workflow file](https://github.com/Nenuial/babelbook/blob/main/.github/workflows/publish.yml)
* The [rOpenSci Packages: Development, Maintenance, and Peer Review](https://devguide.ropensci.org/index.html) book with its [workflow file](https://github.com/ropensci/dev_guide/blob/main/.github/workflows/scheduled-manual-main.yml)
