The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Continuous Integration

Setting up CI

When initializing pre-commit in your repo with precommit::use_precommit(), you can specify the Continuous integration provider with ci = "native" if you want to use pre-commit.ci or ci = "gha" if you want to use GitHub Actions. For existing repos, use precommit::use_ci().

Pre-commit will run the hooks on all files, so instead of pushing, waiting and fixing issues locally, we recommend that you fix all problems before pushing by invoking pre-commit (roughly) the same way as it happens in the CI, which is described in the next section.

Emulate a CI run locally

In the CI run, a command roughly equivalent to the following will be ran from the command line:

pre-commit run --all-files

If you get an error and pre-commit is not on your $PATH (e.g. because you installed with precommit::install_precommit()), you can locate the executable from R with

precommit::path_pre_commit_exec()
#> "/usr/local/bin/pre-commit" 

And run the command in your bash terminal like this:

/usr/local/bin/pre-commit run --all-files

Then fix the problems, stage the files and re-try until the command succeeds without more errors.

Comparison

Next, we quickly introduce the two options. We recommend pre-commit.ci, but you might have to skip the roxygenize hook in the ci run under certain circumstances as explained below.

pre-commit.ci

Pros:

Cons:

Customization:

Please see the documentation of pre-commit.ci on whether or not to auto-fix problems as well as other configuration options.

GitHub Actions

Pros:

Cons:

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.