Note: This repository evolved into cloudogu/reveal.js-docker and is no longer maintained here.
Web-based presentation that features
- reveal.js with example slides in markdown,
- Jenkins continuous delivery pipeline that deploys to Nexus repo, GitHub Pages and Kubernetes.
- It also creates a PDF export of the slides.
- Toggle "presenter remote" mode using the
,
key. Off by default.- This helps for presenter remotes that use the left/right key, instead of space and back.
- Workaround: Map left/right keys to next/prev slide functions.
- Disadvantage: left and right keys are also mapped on the keyboard. But you can toggle back to normal using the
,
key.
- Excluding slides from print via
<section excludeLocation="?print-pdf" ..>
inindex.html
- Print speaker notes on separate page - can be used to provide PDF with more info to the audience while keeping the
slides clean.
Can be switched off inindex.html
by settingshowNotesForPrinting = false
. - Cloudogu corporate design theme
See also our Blog Posts: Docs As Code - Continuous Delivery of Presentations with reveal.js and Jenkins
- Part 1 - Intro and Deployment to GitHub Pages π¬π§ | π©πͺ
- Part 2 - Deployment to Nexus and Kubernetes π¬π§ | π©πͺ
You can view the latest version of the presentation
- as web-based presentation and
- as PDF on the web or on Jenkins
With a git-based wiki such as Smeagol (see Blog Post) you can edit the slides conveniently from the browser. A change there will trigger the the Jenkins pipeline that deploys to
This example also shows how to deploy deploy your GitHub repo to GitHub Pages.
The workflow with a Cloudogu Ecosystem and GitHub are shown bellow.
Cloudogu Ecosystem | GitHub |
---|---|
See
- continuous-delivery-slides wiki (includes slides)
- reveal.js readme
See Jenkinsfile
.
- Makes excessive use of the Jenkins shared library ces-build-lib
- Deploys the presentation to
- GitHub Pages branch of this repo. To do so, username and password credentials
cesmarvin
need to be defined in Jenkins. A best practice is to create an access token. These credentials must have write access on the GitHub repo.
See here for the result. - Nexus site repo defined in
pom.xml
.- Username and password credentials
ces-nexus
need to be defined in Jenkins. - These credentials must have write access to the maven site in Nexus:
nx-repository-view-raw-<RepoName>-add
andnx-repository-view-raw-<RepoName>-edit
- Where
RepoName
is defined inpom.xml
'surl
anddistributionManagement.site.url
s (after/repository/
) - In this example:
nx-repository-view-raw-Cloudogu-Docs-add
- We need a
raw
Repo calledCloudogu-Docs
in Nexus.
- Username and password credentials
- the Kubernetes cluster identified by the
kubeconfig
and the Docker registry defined inJenkinsfile
- Docker Registry: Requires username and password credentials
hub.docker.com-cesmarvin
defined in Jenkins.
In this example the imagecloudogu/continuous-delivery-slides
is deployed to Docker Hub. - Kubernetes: Requires
kubeconfig
file defined as Jenkins file credentialkubeconfig-oss-deployer
. An example for creating the kubeconfig (usingcreate-kubeconfig
from zlabjp/kubernetes-scripts):kubectl create namespace jenkins-ns kubectl create serviceaccount jenkins-sa --namespace=jenkins-ns kubectl create rolebinding jenkins-ns-admin --clusterrole=admin --namespace=jenkins-ns --serviceaccount=jenkins-ns:jenkins-sa ./create-kubeconfig jenkins-sa --namespace=jenkins-ns > kubeconfig
- Docker Registry: Requires username and password credentials
- GitHub Pages branch of this repo. To do so, username and password credentials
- Needs Docker available on the jenkins worker
- On failure, sends emails to git commiter.