Skip to content
Continuously deliver your presentations to Kubernetes, Maven Sites (Nexus) or GitHub Pages
JavaScript CSS HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
css Adds Cloudogu Black theme Sep 17, 2019
docs Adapts to new repo name Sep 17, 2019
js Manually merge newest version of reveal.js May 2, 2019
lib Initial commit. May 2, 2019
plugin Adds twemoji plugin Jul 5, 2019
test Initial commit. May 2, 2019
.dockerignore Manually merge newest version of reveal.js May 2, 2019
.gitignore Adds lib/twemoji to gitignore. Jul 8, 2019
.smeagol.yml
.travis.yml upgrade .travis nodejs version Feb 28, 2019
CONTRIBUTING.md note about plugins Mar 13, 2015
Dockerfile Docker: Switch to bitnami/nginx May 2, 2019
Jenkinsfile Only deploy master branch to GH pages Oct 11, 2019
LICENSE Manually merge newest version of reveal.js May 2, 2019
README-reveal-js.md Initial commit. May 2, 2019
README.md README: Link Blog Post Oct 11, 2019
bower.json Manually merge newest version of reveal.js May 2, 2019
demo.html Manually merge newest version of reveal.js May 2, 2019
favicon.ico Adds favicon May 2, 2019
gruntfile.js Adds lib/twemoji to gitignore. Jul 8, 2019
index.html Adapts to new repo name Sep 17, 2019
k8s.yaml Reflects new name also in k8s resources Sep 17, 2019
package-lock.json Minor changes during review Jul 8, 2019
package.json Adds twemoji plugin Jul 5, 2019
pom.xml Jenkins: Use entrypoint fix from ces-build-lib. May 3, 2019

README.md

continuous-delivery-slides

Build Status

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,
  • Cloudogu corporate design via CSS

See also our Blog Post on this topic.

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
Workflow with Cloudogu Ecosystem Worflow with GitHub

See

Build

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 and
        • nx-repository-view-raw-<RepoName>-edit
        • Where RepoName is defined in pom.xml's url and distributionManagement.site.urls (after /repository/)
        • In this example: nx-repository-view-raw-Cloudogu-Docs-add
      • We need a raw Repo called Cloudogu-Docs in Nexus.
    • the Kubernetes cluster identified by the kubeconfig and the Docker registry defined in Jenkinsfile
      • Docker Registry: Requires username and password credentials hub.docker.com-cesmarvin defined in Jenkins.
        In this example the image cloudogu/continuous-delivery-slides is deployed to Docker Hub.
      • Kubernetes: Requires kubeconfig file defined as Jenkins file credential kubeconfig-oss-deployer. An example for creating the kubeconfig (using create-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
  • Needs Docker available on the jenkins worker
  • On failure, sends emails to git commiter.
You can’t perform that action at this time.