#jenkinsconf. Jenkins user plugin. This time it's. Jenkins User Conference Israel. Shiran JFrog

Similar documents
Seven Habits of Highly Effective Jenkins Users. Andrew Bayer Cloudera OSCON Java 2011

... Fisheye Crucible Bamboo

Connect with Remedy: SmartIT: Social Event Manager Webinar Q&A

Continuous Integration & Code Quality MINDS-ON NUNO 11 APRIL 2017

Who Moved My Module? 1

SECURE PRIVATE VAGRANT BOXES AND MORE WITH A BINARY REPOSITORY MANAGER. White Paper

Continuous Delivery for Cloud Native Applications

From time to time Google changes the way it does things, and old tutorials may not apply to some new procedures.

IntelliJ IDEA Getting Started Guide for FIRST Robotics Competition

REASONS TO USE A BINARY REPOSITORY MANAGER WHEN DEVELOPING WITH. White Paper

Why switch exist-db from Ant to Maven?

I'm Andy Glover and this is the Java Technical Series of. the developerworks podcasts. My guest is Brian Jakovich. He is the

Info Error Deploying Artifact Failed To Transfer File Return Code Is 401

Distributing JavaFX Applications with Java WebStart and Artifactory

MAVEN INTERVIEW QUESTIONS

9 Reasons To Use a Binary Repository for Front-End Development with Bower

The Stack, Free Store, and Global Namespace

Eventually, you'll be returned to the AVD Manager. From there, you'll see your new device.

Chrome if I want to. What that should do, is have my specifications run against four different instances of Chrome, in parallel.

Jenkins User Conference Israel. #jenkinsconf. CI / Liveperson. Gidi Samuels. July 16, #jenkinsconf

Challenges in Cutting Edge CI. #jenkinsconf. Real-life story. Jenkins User Conference Israel #jenkinsconf. Gil

Testing with Soap UI. Tomaš Maconko

DITA Gradle and Git. DITA-OT day Rotterdam

(Refer Slide Time: 1:12)

WYBCS Android Programming (with AppInventor) Family fun day

DevOps examples on NonStop Tools Overview. Cor Geboers, ATC Consultant

BCSWomen Android programming (with AppInventor) Family fun day World record attempt

Building a (resumable and extensible) DSL with Apache Groovy Jesse Glick CloudBees, Inc.

User Plugins. About Plugins. Deploying Plugins

The Actual Real World at EclipseCon/ALM

PHP Composer 9 Benefits of Using a Binary Repository Manager

Who am I? Harlan Iverson. Programming enthusiast. Seeker of truth. Imperfect. I'll be wrong about some things. Please correct me if you can.

sites</distribsiteroot>

(Refer Slide Time: 0:48)

Maven Deploy Error Code 405 Method Not Allowe

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC

glu deployment automation platform July 2011 Yan Pujante in: blog:

Enter the Gradle Hans Dockter CEO, Gradleware Founder Gradle

How to create custom Excel reports from Jira issues in no time

Kotlin for Android Developers

Your Engineering Excellency

Who am I? I m a python developer who has been working on OpenStack since I currently work for Aptira, who do OpenStack, SDN, and orchestration

Maven Introduction to Concepts: POM, Dependencies, Plugins, Phases

Beginner s guide to continuous integration

Participant Handbook

Hello, and welcome to another episode of. Getting the Most Out of IBM U2. This is Kenny Brunel, and

<Insert Picture Here> Hudson Web Architecture. Winston Prakash. Click to edit Master subtitle style

This release of Micro Focus Fortify Software includes the following new functions and features. Micro Focus Fortify Software Security Center

Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting

Seven Habits of Highly Effective Jenkins Users

This Week on developerworks Push for ios, XQuery, Spark, CoffeeScript, top Rational content Episode date:

Signicat Connector for Java Version 4.x. Document version 1

Nexus for Component Management. Nexus for Component Management

Build Automation Kurt Christensen

SpringSource Tool Suite 2.7.1

Geo Catching Sprint #3 Kick-off

DevOps and Maven. Eamonn de Leastar Dr. Siobhán Drohan Produced by:

Introduction to Software Engineering: Tools and Environments. Session 10. Oded Lachish

Android Best Practices

Package Management and Build Tools

Best Practices for a Mission- Critical Jenkins

Getting Started with Gradle

PROCE55 Mobile: Web API App. Web API.

In today s video I'm going show you how you can set up your own online business using marketing and affiliate marketing.

RED IM Integration with Bomgar Privileged Access

How to Create a Killer Resources Page (That's Crazy Profitable)

Windows 10 assigned access chrome

Hello Gradle. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2.

Serverless in the Java ecosystem

Hello Maven. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2.

9.0 Help for Community Managers About Jive for Google Docs...4. System Requirements & Best Practices... 5

Maven POM project modelversion groupid artifactid packaging version name

A Glance Over the Serverless Framework

XML Tutorial. NOTE: This course is for basic concepts of XML in line with our existing Android Studio project.

Uninstall App Windows Phone 8 Facebook Messenger Notifications

The Workshop. Slides (you have a copy in the zip) Practical labs Ask questions

This tutorial explains how you can use Gradle as a build automation tool for Java as well as Groovy projects.

Unable To The Artifact From Any Repository Maven-clean-plugin

VMware vrealize Code Stream Reference Architecture. 12 APRIL 2018 vrealize Code Stream 2.4

Ultimate Spreading Guide

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1

1) CB plugin for Jenkins 2) Requirements Mapping

COSC 3P97 Assignment 1

Tutorial - Creating a project template

Developing Fast with

Profile Can't Be Found Jenkins

Install Flash Plugin Manually Internet Explorer 9 Webm

Distributed CI: Scaling Jenkins on Mesos and Marathon. Roger Ignazio Puppet Labs, Inc. MesosCon 2015 Seattle, WA

Zephyr Cloud for HipChat

Large-Scale Automation with Jenkins

Use Case 2: Extending object/application to support a new object attribute and a validation for that attribute using either Scripting or Java.

nacelle Documentation

Who's speaking? linkd.in/jbaruch. stackoverflow.com/users/402053/jbaruch

Chapter 1 - Continuous Delivery and the Jenkins Pipeline

Is this a known issue? Seems to affect only recurring events. I have some of them and all are shifted. Non-recurring events show properly.

Hello World. Lesson 1. Create your first Android. Android Developer Fundamentals. Android Developer Fundamentals

Struts 2 Maven Archetypes

Setting Up Feedly - Preparing For Google Reader Armageddon

Global Build Stats Plugin

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG

Transcription:

Jenkins user plugin This time it's Shiran Rubin @ShiranRU JFrog http://jfrog.com July 16, 2014

About me Groovy developer in JFrog. The home of We work with: But support many others.

It's time to

There's something you should know... Jenkins supports Groovy: Groovy Script for troubleshooting Groovy post build plugin to run a groovy script when your build is done. Groovy plugin to run a groovy script on selected steps of the build.

So... What's the difference? That's not what we're trying to achieve!

Our real goal Our plugin will be written in Groovy but not necessarily used for Groovy.

There's a plugin for anything Always wanted to be a mechanic and have models calender? There's a plugin for that! So why do we need another one?

It's mostly about needs Language support Tools Environment Fantastic communities need contributors

Your build may vary we're all different Some setups can be very unique Some issues may be solved by modifying the cycle Some issues may be solved with tools or infrastructure

Don't overstep the line Jenkins should make life easier: Prepare the environment Monitor and interface with tools Automate processes Show you ridiculous pictures of 1970's Chuck Norris or super models It's complimentary, not a replacement

What can I extend? User management and authentication

What can I extend? UI

What can I extend? Build Processes deploy and resolve

What can I extend? Tooling Artifactory client tool:

What can I extend? And many many more... You can even create new extension points!

Jenkins thrives on plugins 1113 and growing (13.7.2014) (Jenkins - two years ago 600+)

I'm convinced

My first instinct RTFM

Problem Most documentations and talks are about: Write in Java Build with Maven Use Jelly for UI explanation soon...

There's a better way just wait and see

Tools we'll need IDE - I use IntelliJ IDEA: Because it kicks ass and can totally makes life easier. Build tool Programming language UI Framework

Tools we'll need Why Groovy? Build on top of Java Functional language Dynamic language Runs on JVM Groovy 1.8.9

Groovy tease No ; No return def something encapsulation on type Map [:] Smart collections each, collect, find, any, findall Hello world this is ${something} def myfunction = {param -> 'hello' } (Java 7) And so much more!

Tools we'll need Gradle our building tool

Why Gradle? Build on top of groovy Customize jobs and tasks to your need. Maven users will feel at home: Declarative as Maven Same dependencies Same project structure Similar life cycle JUST MORE FLEXIBLE

Question This will be in the Trivia Does anyone know why Jenkins balls are blue and red?

Traffic lights

Especially for us - Green balls plugin Java + Maven Availability Jenkins plugin management All Jenkins plugins in one place Install + Restart

First plugin - Frog balls Change weather balls TO Frog mood balls

My First Plugin add filter Extension point: Filter - man in the middle. Servlet hack Basic plugin no UI Change exiting objects

Our goal Java Groovy Maven Gradle (Based on Groovy)

Where do I start?

Setting up the environment Plugin Skeleton Generator: http://plugin-generator.jenkins-ci.org/ Note: We will need to replace the pom file with build.gradle file GroupId hudson.plugins.my_cool_pi

Basic project structure build.gradle (descriptor) src/main groovy (plugin classes) resources (UI files) webapp (static resources images etc.)

Comparing Problem! Jenkins supports jpi/hpi packaging formats. How do I package my project with Gradle??

What's JPI/HPI? Stands for Jenkins/Hudson plugin Jenkins plugin packaging Zip of the entire project with the dependencies

Gradle JPI plugin Someone already did it for me! https://github.com/erdi/gradle-jpi-plugin https://wiki.jenkinsci.org/display/jenkins/gradle+jpi+plugin

Code!

First plugin conclusions Shorter code More understandable Cleaner Easy to maintain and extend What about deployment?? We'll see it later on.

Let's kick it up a notch Second plugin Who doesn't know HipChat?

HipChat Acquired by Atlassian. Free messenger. REST API Already has a Java plugin for Jenkins So we need one in Groovy!

Our goal Send a HipChat notification with: Project name Build number Build status Extension point: UI configuration Build Processes

http://www.hipchat.com/grgf8oaz1

Lets start with the UI What is it good for? Configuration! API Token auth Room Id send the message to Color just for fun

UI - Jenkins configuration Global configuration Build configuration Saved as XML No DB

Jelly sounds nice right?

Lets examine Jelly Templates framework Executable XML Jelly Java XML (our configuration)

Jelly disadvantages No debugging Jelly Java XML Very hard to extend

Is there really always room for jelly?

Replace Jelly with Groovy! You can debug! Groovy Groovy XML Easy to extend

Our second plugin will use Java Groovy Jelly Groovy Maven Gradle (Based on Groovy)

Once again...

We're ready! DEPLOY!

Development Locally gradlew clean build/jpi Add jpi file to plugins folder

That's good but... No one will use an Android app which is not in the Google play!

Ready? Let's go! Deploy to Jenkins-ci.org: https://wiki.jenkins-ci.org/display/jenkins/hosting+pl ugins

References http://thingsyoudidntknowaboutjenkins.tumblr.com/post/26585787635/built-in-groovy-scr ipting https://github.com/erdi/gradle-jpi-plugin https://wiki.jenkins-ci.org/display/jenkins/gradle+jpi+plugin https://github.com/jenkinsci/greenballs-plugin http://groovy.codehaus.org/ All examples can be found in here: https://github.com/shiranr Baruch Sadogursky: @jbaruch

Thank You To Our Sponsors Platinum Gold Silver