Skip to content
Continuously deliver your presentations to Kubernetes, Maven Sites (Nexus) or GitHub Pages
JavaScript CSS HTML
Branch: master
Clone or download

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.