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.htmlby 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
cesmarvinneed 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-nexusneed to be defined in Jenkins. - These credentials must have write access to the maven site in Nexus:
nx-repository-view-raw-<RepoName>-addandnx-repository-view-raw-<RepoName>-edit- Where
RepoNameis defined inpom.xml'surlanddistributionManagement.site.urls (after/repository/) - In this example:
nx-repository-view-raw-Cloudogu-Docs-add
- We need a
rawRepo calledCloudogu-Docsin Nexus.
- Username and password credentials
- the Kubernetes cluster identified by the
kubeconfigand the Docker registry defined inJenkinsfile- Docker Registry: Requires username and password credentials
hub.docker.com-cesmarvindefined in Jenkins.
In this example the imagecloudogu/continuous-delivery-slidesis deployed to Docker Hub. - Kubernetes: Requires
kubeconfigfile defined as Jenkins file credentialkubeconfig-oss-deployer. An example for creating the kubeconfig (usingcreate-kubeconfigfrom 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.
