$ oc new-project scm-web-hooks --display-name="Test WebHooks"
SCM Web Hooks
In this recipe we will demonstrate the deployment of a very simple application via a GitHub Web Hook trigger.
Create a project
Create new application
We will use the forked repository from the previous recipe.
$ oc new-app -S --image-stream=php
Image streams (oc new-app --image-stream=<image-stream> [--code=<source>])
-----
php
Project: openshift
Tags: 5.6, 7.0, latest
$ oc new-app --image-stream=php --code=https://github.com/jbosschina/bluegreen.git --name=scm-web-hooks
--> Found image 79f7d44 (8 weeks old) in image stream "openshift/php" under tag "7.0" for "php"
Apache 2.4 with PHP 7.0
-----------------------
Platform for building and running PHP 7.0 applications
Tags: builder, php, php70, rh-php70
* The source repository appears to match: php
* A source build using source code from https://github.com/jbosschina/bluegreen.git will be created
* The resulting image will be pushed to image stream "scm-web-hooks:latest"
* Use 'start-build' to trigger a new build
* This image will be deployed in deployment config "scm-web-hooks"
* Port 8080/tcp will be load balanced by service "scm-web-hooks"
* Other containers can access this service through the hostname "scm-web-hooks"
--> Creating resources ...
imagestream "scm-web-hooks" created
buildconfig "scm-web-hooks" created
deploymentconfig "scm-web-hooks" created
service "scm-web-hooks" created
--> Success
Build scheduled, use 'oc logs -f bc/scm-web-hooks' to track its progress.
Run 'oc status' to view your app.
Look at some of the created resources
-
Build configuration
$ oc get bc
-
Deployment configuration
$ oc get dc
-
Show created service
$ oc get service
-
Show replication controller
$ oc get rc
-
Show route
$ oc get route
Notice that there is no route created yet for this application.
-
Show the builds in progress (Running)
$ oc get builds
NAME TYPE STATUS POD
scm-web-hooks-1 Source Running scm-web-hooks-1-build
-
Monitor the build
$ oc logs build/scm-web-hooks-1
The build should finish similar to:
Pushing image 172.30.160.227:5000/scm-web-hooks-admin/scm-web-hooks:latest ...
Pushed 0/5 layers, 2% complete
Pushed 1/5 layers, 22% complete
Pushed 2/5 layers, 44% complete
Pushed 3/5 layers, 70% complete
Pushed 3/5 layers, 100% complete
Pushed 4/5 layers, 100% complete
Pushed 5/5 layers, 100% complete
Push successful
Create a route
$ oc expose service scm-web-hooks
route "scm-web-hooks" exposed
Test the application
Use scm-web-hooks-scm-web-hooks.apps.example.com to access the app, you should see
Navigate to the OpenShift Web console and login.
-
Navigate to the OpenShift Web console and login.
-
Select your Test WebHooks project, and click Builds and then Builds.
-
Click onto the build name from the list. You should have just one in this case.
-
Click Configuration tab to get list of Triggers for the GitHub link.
-
Copy the GitHub webhook URL. You will need this URL for next step.
Configure GitHub repository Web Hook
-
Login to your GitHub account.
-
Navigate to the forked repository you used to create the application.
-
Click on Settings.
-
Click on Webhooks.
-
Click on the Add webhook button.
-
Add the recently copied Web Hook URL from OpenShift.
-
Change the Content-type as "application/json"
-
Click on the Disable SSL Verification button.
-
Confirm by adding the Add Webhook button in green at the bottom of the page.
Redeploy the application
-
Edit in your GitHub account the
image.php
file. -
One of the lines in line 9 or 10 should be commented out. Make a change so that the line that was previously commented out becomes active and pound the other one.
-
Commit the file.
Monitor new deployment process
-
After saving/committing the
image.php
file with the small change, you’ll notice in the OpenShift Web Console that a new build process has been automatically triggered. You didn’t have to start a build yourself. -
Monitor the build process using:
$ oc get builds
$ oc logs builds/scm-web-hooks-2
Cloning "https://github.com/jbosschina/bluegreen.git" ...
Commit: 4969a28fd786392b20750987d9b5aa026e9cc63f (update image color)
Author: kylin <kylinsoong.1214@gmail.com>
Date: Sun Jul 16 18:46:08 2017 +0800
---> Installing application source...
Pushing image 172.30.160.227:5000/scm-web-hooks/scm-web-hooks:latest ...
Pushed 4/5 layers, 81% complete
Pushed 5/5 layers, 100% complete
Push successful