• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

dzuluagaapigee/apigee-ci-jenkins-git-maven-jmeter: Weather repo to demonstrate c ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

dzuluagaapigee/apigee-ci-jenkins-git-maven-jmeter

开源软件地址(OpenSource Url):

https://github.com/dzuluagaapigee/apigee-ci-jenkins-git-maven-jmeter

开源编程语言(OpenSource Language):

HTML 100.0%

开源软件介绍(OpenSource Introduction):

Table of Contents generated with DocToc

Enable Continuous Integration on Apigee Edge

The purpose of this repo is to provide a step-by-step guide to enable Apigee Edge bundle deployment on Jenkins for Continuous Integration and Deployment.

Install Virtual Box

Download Virtual Box. This step is required to run Vagrant.

Install Jenkins Vagrant Box

run vagrant up to download and install vagrant box. This box will also execute bootstrap.sh, which contains the command to install git, JRE, JDK and Jenkins.

Optional - Jenkins on Cloudbees

An alternative to install Jenkins on a Virtual Machine is to leverage services from a cloud provider such as Cloudbees. You can signup for free for 200 build minutes. This environment has been tested successfuly so far.

Install Jenkins Plugins

Install Plugins with install-jenkins-plugins.sh

after running vagrant ssh install Jenkins plugins by running install-jenkins-plugins.sh. This script leverages jenkins-cli, which leverages Jenkins API to install Jenkins plugins from Jenkins dependency management. Plugins include: performance, github, github oauth, jira, email extension, mask-passwords, and node.js.

cd /vagrant
./install-jenkins-plugins.sh

Hide passwords and sensitive data

Mask Passwords Plugin has been installed as part of install-jenkins-plugins.sh. To setup got to Manage Jenkins > Configure System > Mask Passwords - Parameters to automatically mask, Add global passwords. In this case add ae_username and ae_password. These variables will be used from Grunt.js Deploy plugins to deploy bundles to Apigee Edge. Unfortunately, at this point Maven for Jenkins doesn't support Mask Passwords. Alternative solution described below.

Install Maven

Point your browser to https://127.0.0.1:8088 on the host OS, Go to Manage Jenkins > Configure System > Maven and pick Maven 3.0.5. Make sure Install Automatically checkbox is ticked.

Create a new job

Setup Git Repo

Name the job as "forecastweather-v1-test" Go to New Item > Build a maven project > Select Git under Source Code Management > Set URL as "https://github.com/dzuluagaapigee/apigee-ci-jenkins-git-maven-jmeter.git". Since this is a public repo, there's no need to set any credentials. In case you need to connect to a private repository, you'll need to setup ssh keys generated from you Virtual Box to be added to the private repo.

Setup Build Trigger

For simplicity, setup Jenkins to poll for changes every 15 minutes under Build Triggers H/15 * * * *

Enable Mask Passwords

Enable Mask passwords under Build Environment

Setup Maven Execution Step

Set Root POM as apiproxies/forecastweatherapi/pom.xml

Set Goals and Options as install -P test -D username=$ae_username -D password=$ae_password. username and password can reside under settings.xml. settings.xml file can be found under this folder /var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.0.5/conf/settings.xml. Sample settings.xml file included in this repo under Vagrant folder.

A quick and dirty solution is to add Global Properties under Manage Jenkins > Configure System. Be aware that this won't prevent from including them in the console output.

Run Job

Go back to Job and click "Build Now"

Check build history

Test Analysis

Analize JMeter Log files (JTL)

Configure forecastweatherapi Job and under Add post-build action pick Publish Performance test result report, add a new JMeter report and provide the path under the workspace as apiproxies/forecastweatherapi/target/jmeter/results/*.jtl. Under Relative Thresholds for build comparison, set Unstable % Range negative as 80 and positive as 100. Set Failed % Range negative as 90 and positive as 100. Save and run this job. The next time this job is executed, performance reports will be generated.

Notifications

Setup email

Setup email from Manage Jenkins > Configure System > E-mail Notification For a small test, GMail SMTP settings can be setup. Also make sure to create an App password

Edit Job to setup Email Notification

Email notification leverages Email-ext Jenkins Plugin. Edit Job configuration and "Add Post Build Action" (make sure to click advanced and pick the proper trigger e.g. Always, Fail, Success, etc.)

Jenkins CLI

Jenkins CLI commands are available under Manage Jenkins.

Exporting Jobs

Run vagrant ssh and java -jar ./jenkins/jenkins-cli.jar -s http://localhost:8080/ get-job forecastweather-v1-test > forecastweather-v1-test.xml. You should see an export of the job created in previous steps.

Node.js Plugin and Grunt API Plugin

Install Node.js and Grunt-cli

Go to Manage Jenkins > Configure System > NodeJS, click on Add NodeJS, pick latest version and include grunt-cli@~0.1.13 under Global npm packages to install.

More info about NodeJS Plugin for Jenkins Here.

Create a free-style software project job

This job will allow execution of grunt-cli throughcommand line. Name this job "forecastweather-grunt-test".

Point Source Code Management to apigee-deploy-grunt-plugin repo

Point SCM to this repo.

Enable Mask Passwords under Build Environment

This will leverage the two variables (ae_username and ae_password) created in step above.

Add build step Execute Shell

Set shell this step to execute the following commands:

echo $PATH
node --version
grunt --version
npm install
grunt --env=test --debug --username=${ae_username} --password=${ae_password}

For additional directions on enabling a job with Node.js, see this section here.

Jenkins on EC2

Bitnami Jenkins is a pre-configured, ready to run image for running Jenkins on Amazon EC2. Amazon EC2 Bitnami.

Jenkins Pull Request Plugin Setup

This plugin is useful to trigger the execution of a Job when a pull request is created. WIP

Contributing

If you would like to contribute, simply fork the repository, push your changes to a branch and send a pull request.

Typo fixes, improvements to grammar or readability, it's all welcome.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
mojohaus/animal-sniffer发布时间:2022-08-17
下一篇:
amruthapbhat/java-maven-junit-helloworld: Testing with the all the required deta ...发布时间:2022-08-17
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap