SBT autoplugin to release documentation to Gitlab Pages.
The heavy-lifting is left to sbt-ghpages - sbt-glpages simply sets the correct configuration values for Gitlab.
As such, please consult the sbt-ghpages documentation for detailed information
sbt-glpages requires a dedicated, orphan in your Git repository to work. By default, this will be gl-pages, but this
can be changed with the ghpagesBranch setting.
Here are the quick steps to creating the gl-pages branch:
# Using a fresh, temporary clone is safest for this procedure
$ pushd /tmp
$ git clone [email protected]:youruser/yourproject.git
$ cd yourproject
# Create branch with no history or content
$ git checkout --orphan gl-pages
$ git rm -rf .
# Establish the branch existence
$ git commit --allow-empty -m "Initialize gl-pages branch"
$ git push origin gh-pages
# Return to original working copy clone, we're finished with the /tmp one
$ popd
$ rm -rf /tmp/yourprojectYou then need to add a .gitlab-ci.yml file that matches the technology you're using to generate your static
documentation. For example, if you're generating a Jekyll site:
image: ruby:2.1
pages:
script:
- gem install jekyll
- jekyll build -d public/ --config _config.yml
artifacts:
paths:
- publicNote that this file must be added to gl-pages, not your main branch.
You first need to add the sbt-glpages plugin to your project by adding the following line to project/plugins.sbt:
addSbtPlugin("com.nrinaudo" % "sbt-glpages" % "1.0.0")Once that's done, you need to manually enable the plugin by adding the folloing line in your build.sbt:
enablePlugins(GlpagesPlugin)Finally, sbt-glpages needs to know the URL of your repository. This is declared through the git.remoteRepo in your
build.sbt file:
git.remoteRepo := "ssh://[email protected]/user/project.git"Under the hood, sbt-glpages relies on sbt-site to generate the site. Running the makeSite command will
generate your documentation in target/site, which is what sbt-glpages will publish.
Use ghpagesPushSite to generate the site, grab anything in target/site and push it to the gl-pages branch,
deleting anything it might have contained previously save for the .gitlab-ci.yml file.