{ Community }
  • Academy
  • Docs
  • Developers
  • Resources
    • Community Articles
    • Apigee on GitHub
    • Code Samples
    • Videos & eBooks
    • Accelerator Methodology
  • Support
  • Ask a Question
  • Spaces
    • Product Announcements
    • General
    • Edge/API Management
    • Developer Portal (Drupal-based)
    • Developer Portal (Integrated)
    • API Design
    • APIM on Istio
    • Extensions
    • Business of APIs
    • Academy/Certification
    • Analytics
    • Events
    • Hybrid
    • Integration (AWS, PCF, Etc.)
    • Microgateway
    • Monetization
    • Private Cloud Deployment
    • Insights
    • IoT Apigee Link
    • BaaS/Usergrid
    • BaaS Transition/Migration
    • Apigee-127
    • New Customers
    • Topics
    • Questions
    • Articles
    • Ideas
    • Leaderboard
    • Badges
  • Log in
  • Sign up

Get answers, ideas, and support from the Apigee Community

  • Home /
  • Edge/API Management /
avatar image
3

Basic Apigee CICD Pipeline - updated  

  • Export to PDF
Siddharth Barahalikar   created · May 14, 2018 at 06:55 PM · 6.9k Views · edited · Jul 15 at 05:44 PM

Hi guys, I have updated my Apigee CICD repo on Github.

Pipeline steps,

  1. In Jenkins, Apigee Proxy bundle is cloned from Github.
  2. Static Code Analysis is done using Apigee Lint.
  3. Any Javascript files from apiproxy directory goes through Unit Tests using mocha.
  4. Code coverage is done by Istanbul/nyc and reports are generated by Cobertura.
  5. Using edge.json configurations are created/updated and a new revision is published in prod environment using Apigee Maven Build Plugin.
  6. The newly deployed prod environment goes through Integration tests using Apickli.
  7. Apickli produced Cucumber Reports are displayed in Jenkins.
  8. If the test FAILS, the current revision is undeployed and a stable/previous/hardcoded revision is re-deployed.
  9. Build Success/Fail notification along with Cucumber reports are sent to Slack Room.

For a detailed demo/steps/scripts, visit GitHub Repo.

I would still like to modify the current pipeline and add new options in the future,

  1. Update Developer Portal.
    • After successful Integration Test, we can add another Stage to Update Developer Portal Docs.
    • Currently, we have plugin/apis for updating Apigee Drupal based portal.
    • We do not have any APIs for updating Apigee Integrated Developer Portal as of 14th July 2019.
  2. Add Performace/Load Tests after Integration Tests
  3. Use Git Branches/Projects for dev >> uat >> prod environments and use Jenkins to Merge and Commit updates.
  4. Use OAS with Apigee Management APIs to create and deploy a proxy through Pipeline.

********************************************************v1*********************************************************

arch-diagram.jpg (154.5 kB)
apigee-cicd-pipeline.png (55.8 kB)
supporting-images.png (279.2 kB)
thub.nodes.view.add-new-comment
testingcicddevopsapickliapigeelint
Add comment Show 20
10 |5000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by Apigeeks only
  • Viewable by the original poster
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Hitesh Parikh · May 21, 2018 at 04:07 PM 0
Link

@Siddharth Barahalikar - You have provided great details for creating Apigee pipeline. How much time did you need to establish this pipeline?

avatar image Siddharth Barahalikar Hitesh Parikh   · Aug 16, 2018 at 08:02 PM 0
Link

Hi @Hitesh Parikh, sorry for the delayed response. I somehow missed your query.

Well, it took me about a week to explore various docs & set up this pipeline.

avatar image SatK · Jun 27 at 05:21 PM 0
Link

Do you have the latest updates too? as I see latest commit is one year old

avatar image Siddharth Barahalikar SatK   · Jun 27 at 05:35 PM 0
Link

I have plans to update it. But it is going to take sometime.

Are you looking for anything specific?

avatar image SatK Siddharth Barahalikar · Jun 27 at 06:09 PM 0
Link

Not yet. Just started to follow this. Will post here if I face any issue.

It would be great if you put up a video if possible.

avatar image SatK · Jun 28 at 02:50 PM 0
Link

What exactly assertible is doing here? is that unit testing goes to assertible and then to apigee test?

avatar image Siddharth Barahalikar SatK   · Jun 28 at 03:17 PM 0
Link

At that time, I used Assertible as a first level basic testing, to check the status codes and input validation.

But it can be done using Apickli as well. So once you pull the proxy from github, I would suggest you do the static code analysis, then do Unit test for custom code like JS, Java, Python, Nodejs.

StaticCodeAnalysis >> Unit Test >> Deploy >> Performance/Integration testing >> Updating Docs

avatar image SatK · Jul 01 at 02:18 PM 0
Link

For cucumber reports, do you have any specific config that needs to be changed in jenkins config other than plugin installation?

for me reports are not getting generated.

avatar image Siddharth Barahalikar SatK   · Jul 01 at 02:22 PM 0
Link

After APICKLI test, a reports.json file is generated. You need to copy that files to the workspace and then run a cucumber command. You can do that in finally block.

finally {
            // generate cucumber reports in both Test Pass/Fail scenario
            // to generate reports, cucumber plugin searches for an *.json file in Workspace by default
            bat "cd hr-api/test-dir/test/features && cp reports.json $WORKSPACE"
            cucumber fileIncludePattern: 'reports.json'


          }

avatar image SatK Siddharth Barahalikar · Jul 01 at 03:04 PM 1
Link

could you provide the whole updated jenkins file that you are executing in windows

Show more comments
avatar image maneesh m Siddharth Barahalikar · Jul 02 at 03:45 PM 0
Link

@Siddharth Barahalikar, I am looking at this repo for Jenkins job.

https://github.com/sidd-harth/apigee-cicd

If you have 1 Github repo for each proxy and a jenkinsfile in each repo, could you guide on how the job is setup on Jenkins? Are you using 1 proxy repo === 1 jenkins job?

Or would it be possible to use 1 Jenkins job for all proxy repos?

Thanks in advance.

Show more comments

Article

Contributors

avatar image
Follow

Follow this article

83 People are following this .

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Navigation

Basic Apigee CICD Pipeline - updated

Related Articles

apickli - REST API integration testing framework based on cucumber.js

Log messages into Splunk

  • Products
    • Edge - APIs
    • Insights - Big Data
    • Plans
  • Developers
    • Overview
    • Documentation
  • Resources
    • Overview
    • Blog
    • Apigee Institute
    • Academy
    • Documentation
  • Company
    • Overview
    • Press
    • Customers
    • Partners
    • Team
    • Events
    • Careers
    • Contact Us
  • Support
    • Support Overview
    • Documentation
    • Status
    • Edge Support Portal
    • Privacy Policy
    • Terms & Conditions
© 2019 Apigee Corp. All rights reserved. - Apigee Community Terms of Use - Powered by AnswerHub
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Create an article
  • Post an idea
  • Spaces
  • Product Announcements
  • General
  • Edge/API Management
  • Developer Portal (Drupal-based)
  • Developer Portal (Integrated)
  • API Design
  • APIM on Istio
  • Extensions
  • Business of APIs
  • Academy/Certification
  • Analytics
  • Events
  • Hybrid
  • Integration (AWS, PCF, Etc.)
  • Microgateway
  • Monetization
  • Private Cloud Deployment
  • Insights
  • IoT Apigee Link
  • BaaS/Usergrid
  • BaaS Transition/Migration
  • Apigee-127
  • New Customers
  • Explore
  • Topics
  • Questions
  • Articles
  • Ideas
  • Members
  • Badges