SlideShare a Scribd company logo
Apigee deploy grunt plugin.1.0
API Lifecycle 
Let’s start by providing 
some context …
Run Unit, 
Functional, 
and 
Performance 
Tests 
©2014 Apigee Corp. All Rights Reserved. 
3 
API Continuous Integration/Delivery (CI/CD) 
Dev Team 
Continuous Integration 
Source Code 
Version 
Control 
Pull Request 
or Merge 
API Job is 
triggered 
Static Code 
Analysis 
Code 
coverage 
analysis 
Deploy API 
Bundle 
Publish 
Reports 
Update Docs
Let’s take a look at some of the tasks required 
Configure Artifacts for each environment (DEV, QA, 
Apply static code analysis 
©2014 Apigee Corp. All Rights Reserved. 
Execute Unit Tests 
Execute Functional Tests 
4 
API Lifecycle 
Clean API Bundle Files and Folders 
Copy Artifacts 
Deactivate last revision from the API Services 
Import and deploy API bundle to API Services 
Execute Performance Tests 
Deploy and Test Documentation on CMS 
Any other manual tasks… 
STG, PROD, etc.) 
Package Artifacts (zip) 
Review code coverage
API Build Lifecycle 
Management known 
tasks are just the tip of 
the iceberg… 
©2014 Apigee Corp. All Rights Reserved.
Don’t shoot yourself on the foot… 
©2014 Apigee Corp. All Rights Reserved.
Without the right tools, API 
build can be really painful! 
process…
 Easy and flexible 
 It’s JavaScript! Node! NPM! 
 Plays well with TDD frameworks 
 Empowers developers, QA, Ops, and business 
owner - (DevOps) to apply continuous improvement 
to the lifecycle 
©2014 Apigee Corp. All Rights Reserved. 
8 
Apigee Deploy Grunt Plugin
Features 
 Ready for TDD with Mocha.js and Chai 
 Does static code analysis with JSHint 
 Reviews JavaScript complexity with Grunt-Complexity 
 Easier to troubleshoot spits out cURL command support. Just pass --curl=true 
 Deploys Node.js API Proxies. Support of Apigee NPM API 
 Searches and replace files content with RegEx, string patterns, or XPath 
 Supports JavaCallout Policies 
 Does DRY - Includes files dynamically from common git submodule 
 Compatible with most CI tools Jenkins, Bamboo, Go, and Travis 
 Sends automatic desktop notifications with Grunt Notify. Requires growlnotify for Windows 
 Compatible with IDEs. Chrome Grunt Dev Tools and WebStorm 
 Compatible with Maven 
©2014 Apigee Corp. All Rights Reserved. 
9 
Apigee Deploy Grunt Plugin
Apigee Deploy Grunt Plugin 
Getting Started 
©2014 Apigee Corp. All Rights Reserved. 
10 
1. Clone this repo from Github 
git clone https://github.com/apigeecs/apigee-deploy-grunt-plugin.git 
If you don't have Git is installed, download this repo as a zip file and 
expand it somewhere in the filesytem.
Apigee Deploy Grunt Plugin 
Getting Started 
©2014 Apigee Corp. All Rights Reserved. 
11 
2. Initialize common Git Submodule 
open apigee-deploy-grunt-plugin folder and execute the following two 
commands: 
git submodule init 
git submodule update
Apigee Deploy Grunt Plugin 
Getting Started 
©2014 Apigee Corp. All Rights Reserved. 
12 
3. Install Grunt-cli 
open apigee-deploy-grunt-plugin folder and execute the following two 
commands: 
sudo npm install grunt-cli –g 
or 
npm install grunt-cli –g
Apigee Deploy Grunt Plugin 
Getting Started 
©2014 Apigee Corp. All Rights Reserved. 
13 
4. Install npm packages 
npm install
Apigee Deploy Grunt Plugin 
Getting Started 
©2014 Apigee Corp. All Rights Reserved. 
14 
5. Setup environment profiles in grunt/apigee-config.js
Apigee Deploy Grunt Plugin 
Getting Started 
©2014 Apigee Corp. All Rights Reserved. 
15 
6. Make it Grunt! 
grunt --env=test --username={apigee_edge_email_address} -- 
password={apigee_edge_password} --debug --curl=true
Thank you

More Related Content

PDF
I Love APIs 2015: Continuous Integration the Virtuous Cycle
PPTX
API Design first with Swagger
PDF
Coders Workshop: API First Mobile Development Featuring Angular and Node
PDF
Crystal clear service interfaces w/ Swagger/OpenAPI
PDF
Practical Patterns for Developing a Cross-product Cross-version App
PDF
Sling Component Filters in CQ5
PDF
Why your APIs should fly first class
PDF
Swagger 2.0: Latest and Greatest
I Love APIs 2015: Continuous Integration the Virtuous Cycle
API Design first with Swagger
Coders Workshop: API First Mobile Development Featuring Angular and Node
Crystal clear service interfaces w/ Swagger/OpenAPI
Practical Patterns for Developing a Cross-product Cross-version App
Sling Component Filters in CQ5
Why your APIs should fly first class
Swagger 2.0: Latest and Greatest

What's hot (17)

PPTX
Mule ESB- Data Validation- Best Practices
PPT
A Tour of Swagger for APIs
PDF
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
PPT
Apache Cordova phonegap plugins for mobile app development
PPTX
Swagger 2.0 and Model-driven APIs
PPTX
Iterative Development with Swagger on the JDK
PDF
Swagger for-your-api
PDF
Vietnam qa meetup
PPTX
Agility Requires Safety
PPTX
Introducing Swagger
PPTX
Operational API design anti-patterns (Jason Harmon)
PPTX
DevOps Architecture Design
PDF
Scaling Indexing and Replication in Jira Data Center Apps
PDF
Streamlining API with Swagger.io
PPTX
Swagger in the API Lifecycle
PPTX
Swagger - make your API accessible
PDF
Zure Azure PaaS Zero to Hero - DevOps training day
Mule ESB- Data Validation- Best Practices
A Tour of Swagger for APIs
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
Apache Cordova phonegap plugins for mobile app development
Swagger 2.0 and Model-driven APIs
Iterative Development with Swagger on the JDK
Swagger for-your-api
Vietnam qa meetup
Agility Requires Safety
Introducing Swagger
Operational API design anti-patterns (Jason Harmon)
DevOps Architecture Design
Scaling Indexing and Replication in Jira Data Center Apps
Streamlining API with Swagger.io
Swagger in the API Lifecycle
Swagger - make your API accessible
Zure Azure PaaS Zero to Hero - DevOps training day
Ad

Similar to Apigee deploy grunt plugin.1.0 (20)

PDF
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
PPTX
Operations Support Workflow - Rundeck
PDF
Simplified DevOps Bliss -with OpenAI API
PDF
Portable CI wGitLab and Github led by Gavin Pickin.pdf
PDF
The Brave New World of Continuous Release - Baruch Sadogursky
PDF
End to End Testing: Bug Squashing for API Developers
PPTX
Continuous Integration and Delivery using TeamCity and Jenkins
PDF
Agile Bodensee - Testautomation & Continuous Delivery Workshop
PPTX
Continous integration and delivery for single page applications
PPTX
Anatomy of a Build Pipeline
PPTX
Amis conference soa deployment. the dirty tricks using bamboo, nexus and xl ...
KEY
Avoiding integration hell
PDF
Automated Deployment with Maven - going the whole nine yards
PDF
Continuous Delivery: 5 years later (Incontro DevOps 2018)
PPTX
Continuous delivery chernivcy
PDF
I Love APIs 2015: End to End Testing: Bug Squashing for Developers
PPTX
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
PDF
Grunt.js and Yeoman, Continous Integration
PPTX
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
PDF
I Love APIs 2015: Getting **IT Done Workshop
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
Operations Support Workflow - Rundeck
Simplified DevOps Bliss -with OpenAI API
Portable CI wGitLab and Github led by Gavin Pickin.pdf
The Brave New World of Continuous Release - Baruch Sadogursky
End to End Testing: Bug Squashing for API Developers
Continuous Integration and Delivery using TeamCity and Jenkins
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Continous integration and delivery for single page applications
Anatomy of a Build Pipeline
Amis conference soa deployment. the dirty tricks using bamboo, nexus and xl ...
Avoiding integration hell
Automated Deployment with Maven - going the whole nine yards
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous delivery chernivcy
I Love APIs 2015: End to End Testing: Bug Squashing for Developers
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
Grunt.js and Yeoman, Continous Integration
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
I Love APIs 2015: Getting **IT Done Workshop
Ad

Recently uploaded (20)

PDF
KodekX | Application Modernization Development
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Spectroscopy.pptx food analysis technology
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Approach and Philosophy of On baking technology
PPT
Teaching material agriculture food technology
PDF
Encapsulation_ Review paper, used for researhc scholars
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Electronic commerce courselecture one. Pdf
PDF
Encapsulation theory and applications.pdf
KodekX | Application Modernization Development
NewMind AI Weekly Chronicles - August'25 Week I
Understanding_Digital_Forensics_Presentation.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Unlocking AI with Model Context Protocol (MCP)
Spectroscopy.pptx food analysis technology
Chapter 3 Spatial Domain Image Processing.pdf
Approach and Philosophy of On baking technology
Teaching material agriculture food technology
Encapsulation_ Review paper, used for researhc scholars
“AI and Expert System Decision Support & Business Intelligence Systems”
Empathic Computing: Creating Shared Understanding
Programs and apps: productivity, graphics, security and other tools
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Diabetes mellitus diagnosis method based random forest with bat algorithm
Electronic commerce courselecture one. Pdf
Encapsulation theory and applications.pdf

Apigee deploy grunt plugin.1.0

  • 2. API Lifecycle Let’s start by providing some context …
  • 3. Run Unit, Functional, and Performance Tests ©2014 Apigee Corp. All Rights Reserved. 3 API Continuous Integration/Delivery (CI/CD) Dev Team Continuous Integration Source Code Version Control Pull Request or Merge API Job is triggered Static Code Analysis Code coverage analysis Deploy API Bundle Publish Reports Update Docs
  • 4. Let’s take a look at some of the tasks required Configure Artifacts for each environment (DEV, QA, Apply static code analysis ©2014 Apigee Corp. All Rights Reserved. Execute Unit Tests Execute Functional Tests 4 API Lifecycle Clean API Bundle Files and Folders Copy Artifacts Deactivate last revision from the API Services Import and deploy API bundle to API Services Execute Performance Tests Deploy and Test Documentation on CMS Any other manual tasks… STG, PROD, etc.) Package Artifacts (zip) Review code coverage
  • 5. API Build Lifecycle Management known tasks are just the tip of the iceberg… ©2014 Apigee Corp. All Rights Reserved.
  • 6. Don’t shoot yourself on the foot… ©2014 Apigee Corp. All Rights Reserved.
  • 7. Without the right tools, API build can be really painful! process…
  • 8.  Easy and flexible  It’s JavaScript! Node! NPM!  Plays well with TDD frameworks  Empowers developers, QA, Ops, and business owner - (DevOps) to apply continuous improvement to the lifecycle ©2014 Apigee Corp. All Rights Reserved. 8 Apigee Deploy Grunt Plugin
  • 9. Features  Ready for TDD with Mocha.js and Chai  Does static code analysis with JSHint  Reviews JavaScript complexity with Grunt-Complexity  Easier to troubleshoot spits out cURL command support. Just pass --curl=true  Deploys Node.js API Proxies. Support of Apigee NPM API  Searches and replace files content with RegEx, string patterns, or XPath  Supports JavaCallout Policies  Does DRY - Includes files dynamically from common git submodule  Compatible with most CI tools Jenkins, Bamboo, Go, and Travis  Sends automatic desktop notifications with Grunt Notify. Requires growlnotify for Windows  Compatible with IDEs. Chrome Grunt Dev Tools and WebStorm  Compatible with Maven ©2014 Apigee Corp. All Rights Reserved. 9 Apigee Deploy Grunt Plugin
  • 10. Apigee Deploy Grunt Plugin Getting Started ©2014 Apigee Corp. All Rights Reserved. 10 1. Clone this repo from Github git clone https://github.com/apigeecs/apigee-deploy-grunt-plugin.git If you don't have Git is installed, download this repo as a zip file and expand it somewhere in the filesytem.
  • 11. Apigee Deploy Grunt Plugin Getting Started ©2014 Apigee Corp. All Rights Reserved. 11 2. Initialize common Git Submodule open apigee-deploy-grunt-plugin folder and execute the following two commands: git submodule init git submodule update
  • 12. Apigee Deploy Grunt Plugin Getting Started ©2014 Apigee Corp. All Rights Reserved. 12 3. Install Grunt-cli open apigee-deploy-grunt-plugin folder and execute the following two commands: sudo npm install grunt-cli –g or npm install grunt-cli –g
  • 13. Apigee Deploy Grunt Plugin Getting Started ©2014 Apigee Corp. All Rights Reserved. 13 4. Install npm packages npm install
  • 14. Apigee Deploy Grunt Plugin Getting Started ©2014 Apigee Corp. All Rights Reserved. 14 5. Setup environment profiles in grunt/apigee-config.js
  • 15. Apigee Deploy Grunt Plugin Getting Started ©2014 Apigee Corp. All Rights Reserved. 15 6. Make it Grunt! grunt --env=test --username={apigee_edge_email_address} -- password={apigee_edge_password} --debug --curl=true

Editor's Notes

  • #3: DIEGO – So, before diving deeper into technical aspects, let’s talk a little bit about the current state of the build and deployment process
  • #5: DIEGO This is assuming developers work on file-based development: UI Development does some of these tasks through the browser Before code gets shipped to an environment be it Development, QA, staging, or production, it needs to go through a build process which executes the following task Some of these tasks aren’t required or could be executed in a different sequence Too many steps to go through and each one of them is essential Depending on the task, between 38 per cent and 59 per cent of users were still carrying them out manually We (software engineers) do a great work at automating the work for others, but about ourselves
  • #8: DIEGO The reality is that software development in general without the right tools is more challenging than it should to be Current methodologies (Agile, TDD, BDD) methodologies now enable organizations to get faster time to market Which means, releases occur not only monthly, but bi-weekly, daily or even multiple times a day. So, it’s though to keep up with this pace
  • #9: Demo with no skipTests arguments Notice passing username and password as environment variables. You don’t want to expose your credentials storing them in you source control repository Notice I passed –Dorg=testmyapi, in case you want to target an organization different than the default one specified in pom.xml Config.json to be explained in the next steps Tests with Jmeter to be explained in the next steps
  • #10: Demo with no skipTests arguments Notice passing username and password as environment variables. You don’t want to expose your credentials storing them in you source control repository Notice I passed –Dorg=testmyapi, in case you want to target an organization different than the default one specified in pom.xml Config.json to be explained in the next steps Tests with Jmeter to be explained in the next steps
  • #11: If you notice, we’re using the same command that was used prior when running maven install for deployment. Except that we’re enabling a new plugin in the process to resolve fragments into actual code
  • #12: If you notice, we’re using the same command that was used prior when running maven install for deployment. Except that we’re enabling a new plugin in the process to resolve fragments into actual code
  • #13: If you notice, we’re using the same command that was used prior when running maven install for deployment. Except that we’re enabling a new plugin in the process to resolve fragments into actual code
  • #14: If you notice, we’re using the same command that was used prior when running maven install for deployment. Except that we’re enabling a new plugin in the process to resolve fragments into actual code
  • #15: If you notice, we’re using the same command that was used prior when running maven install for deployment. Except that we’re enabling a new plugin in the process to resolve fragments into actual code
  • #16: If you notice, we’re using the same command that was used prior when running maven install for deployment. Except that we’re enabling a new plugin in the process to resolve fragments into actual code