Skip to content

Instantly share code, notes, and snippets.

@l0rd
Last active May 3, 2017 18:45
Show Gist options
  • Save l0rd/8493c9350e17b88bb49c8304c35e6f8b to your computer and use it in GitHub Desktop.
Save l0rd/8493c9350e17b88bb49c8304c35e6f8b to your computer and use it in GitHub Desktop.
CI improvements for RH Che

Currently our Che CI consists of

One ci.centos.org jenkins job that:

  1. Builds Che
  2. Publishes che-server on Docker registries (dockerhub and registry.devshift.net/che/che)
  3. Deploys Che to dev.rdu2c.fabric8.io and [che.ci.centos.org] (https://che.ci.centos.org:8443)

One fabric8.io jenkins job that is triggered by step 2 of ci.centos.org job. This job is responsible for the release of a new version of Che available for openshift.io.

What can we do to improve it

  • Step 3. is just a deployment of Che but we want to add more tests to validate our builds: ideally an end to end test run on openshift.io. That is something which we desperately need and if we can't have an e2e test an oc deploy followed by a curl to start a che workspace would be enought now.
  • fabric8.io build should be triggered only if validation is successfull (i.e. after step 3): this means that in step 2. we should publish images to a "stage" dockerhub repository (i.e rh-che-stage/che-server) and that we should add a fourth step to publish promoted images only to rh-che/che-server.
  • Currently step 2. pushes only one tag of rh-che/che-server. We need to push more tags (without-keycloak, nightly etc...). That is trivial if we use a "stage" dockerhub repository to push these tags.
  • We want use the same job to validate Pull Requests. In the case of PR validation:
    • fabric8.io build should never be triggered (i.e. image should not be published to rh-che/che-server)
    • the branch eclipse/che and redhat-developer/rh-che branches should be parameters of the jenkins job
  • We don't need ci.centos.org build to be triggered twice a day. Trigger once a commit is merged in openshift-connector branch (for eclipse/che) or master branch (for redhat-developer/rh-che) is enough.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment