deploy_site_github() sets up your SSH keys for deployment, builds the site with build_site(), commits the site to the gh-pages branch and then pushes the results back to GitHub. deploy_site_github() is meant only to be used by the CI system on Travis, it should not be called locally. See 'Setup' for details on setting up your repository to use this.

deploy_site_github(pkg = ".", tarball = Sys.getenv("PKG_TARBALL", ""),
  ssh_id = Sys.getenv("id_rsa", ""),
  repo_slug = Sys.getenv("TRAVIS_REPO_SLUG", ""),
  commit_message = construct_commit_message(pkg), verbose = FALSE, ...)



Path to package.


The location of the built package tarball. The default Travis configuration for R packages sets PKG_TARBALL to this path.


The private id to use, a base64 encoded content of the private pem file. This should not be your personal private key. Instead create a new keypair specifically for deploying the site. The easiest way is to use travis::use_travis_deploy().


The user/repo slug for the repository.


The commit message to be used for the commit.


Print verbose output


Additional arguments passed to build_site().


Add the following to your .travis.yml file.

before_deploy: Rscript -e 'remotes::install_cran("pkgdown")'
  provider: script
  script: Rscript -e 'pkgdown::deploy_site_github()'
  skip_cleanup: true

Then you will need to setup your deployment keys. The easiest way is to call travis::use_travis_deploy(). This will generate and push the necessary keys to your GitHub and Travis accounts. See the travis package website for more details.

Next, make sure that a gh-pages branch exists. The simplest way to do so is to run the following git commands locally:

git checkout --orphan gh-pages
git rm -rf .
git commit --allow-empty -m 'Initial gh-pages commit'
git push origin gh-pages
git checkout master

We recommend doing this outside of RStudio (with the project closed) as from RStudio's perspective you end up deleting all the files and then re-creating them.

If you're using a custom CNAME, make sure you have set the url in _pkgdown.yaml: