Software Developer at R.L. Heavey & Co Ltd
Real User
Streamlines automated testing and building of release candidates, good support material available
Pros and Cons
  • "A lot of support material exists via a single web search of exactly what you're looking for."
  • "I think an integrated help button, that respected the context of the change/work in hand, would be a worthwhile improvement."

What is our primary use case?

We use this solution for repeatable testing of code for regression and design conformance in a medical and scientific environment.

How has it helped my organization?

Jenkins has allowed for streamlined automated testing, building, and smoke testing of release candidates.

What is most valuable?

A lot of support material exists via a single web search of exactly what you're looking for.

What needs improvement?

I think an integrated help button, that respected the context of the change/work in hand, would be a worthwhile improvement.

Buyer's Guide
Jenkins
March 2024
Learn what your peers think about Jenkins. Get advice and tips from experienced pros sharing their opinions. Updated: March 2024.
768,886 professionals have used our research since 2012.

For how long have I used the solution?

I have been using this solution for four years.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Fatih Mehmet HARMANCI - PeerSpot reviewer
Software Testing Services Manager at a tech services company with 51-200 employees
Real User
Top 5
Easy to use, readily available documents online, but time planning could be better
Pros and Cons
  • "The most valuable features of Jenkins are the ease of use and the information about how to use the features is readily available on the internet. Additionally, with the solution, I can use other reporting tools, such as Flow."
  • "Jenkins could improve by adding the ability to edit test automation and make time planning better because it is difficult. It should be easier to do."

What is our primary use case?

Jenkins is used for triggering my test automation. I use Selenium WebDriver for test automation.

What is most valuable?

The most valuable features of Jenkins are the ease of use and the information about how to use the features is readily available on the internet. Additionally, with the solution, I can use other reporting tools, such as Flow.

What needs improvement?

Jenkins could improve by adding the ability to edit test automation and make time planning better because it is difficult. It should be easier to do.

For how long have I used the solution?

I have been using Jenkins for three years.

What do I think about the stability of the solution?

Jenkins has been stable in my usage. However, I have had colleagues say they have had stability problems. They experienced these problems after six months to a year of use.

What do I think about the scalability of the solution?

We have approximately four engineers using Jenkins and they use it as needed. It could be weekly or monthly.

How are customer service and support?

There is not any support for the solution since it is open-source. However, you can find all the information needed online.

Which solution did I use previously and why did I switch?

For triggering I use Jenkins, but for local systems, I used Selenium WebDriver. Additionally, I have used Cypress.

How was the initial setup?

The initial setup of Jenkins is in the medium-difficult range.

What's my experience with pricing, setup cost, and licensing?

Jenkins is a free solution, it is open source.

What other advice do I have?

I rate Jenkins a seven out of ten.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Buyer's Guide
Jenkins
March 2024
Learn what your peers think about Jenkins. Get advice and tips from experienced pros sharing their opinions. Updated: March 2024.
768,886 professionals have used our research since 2012.
CTO at Redsis
Real User
In addition to our automation pipeline, we use it to generate documentation for all our software
Pros and Cons
  • "Jenkins is very stable."
  • "The documentation could be more friendly, and more examples of how to use it."

What is our primary use case?

We use a Hybrid cloud. We are deploying internally on our own servers i.e. our virtual servers in Microsoft Azure. We have 6 engineers using Jenkins Primer. It is only for internal use. We use it for the automation pipeline in our development of software. It compiles and moves the software to deployment in the Microsoft Azure cloud. We also use Jenkins to generate documentation for all the software.

What needs improvement?

The documentation could be more friendly, and more examples of how to use it. This would make for easier implementation in several environments.

What do I think about the stability of the solution?

Jenkins is very stable.

How are customer service and technical support?

We read all the documentation. We also took online training on the internet, which included videos and training tasks. It takes some study and learning, but we don't experience any technical problems.

How was the initial setup?

It took a few weeks for the initial installation of the Jenkins server to set up the development virtual pipeline.

What about the implementation team?

The implementation was undertaken by developers and other internal staff.

What other advice do I have?

I would rate Jenkins 9 out of 10.

Which deployment model are you using for this solution?

Hybrid Cloud

If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?

Microsoft Azure
Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Senior IT Professional at Novabase
Real User
Fully integrates with many other solutions for more effective ALM
Pros and Cons
  • "The most valuable features are Jenkins Pipelines for ALM and full Deploy Cycle."
  • "Better and easy-to-use integration with Docker would be an improvement."

What is our primary use case?

We use this solution for Build & Deploy Automation. It is integrated with Git or TFS, Nexus and Ansible for deploying to premises servers in Linux or Windows.

How has it helped my organization?

This solution provides us more effective ALM and deployment automation compared to the previous solution with Serena (now Micro Focus) Dimensions CM.

What is most valuable?

The most valuable features are Jenkins Pipelines for ALM and full Deploy Cycle. This solution fully integrates with a lot of other solutions like Git, TFS, Nexus, SonarQube, etc.

What needs improvement?

I would like to have more Steps commands for better integration with other platforms.

Better and easy-to-use integration with Docker would be an improvement.

For how long have I used the solution?

I have been using this solution for three years.
Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
PeerSpot user
Mobile QA Developer at a tech vendor
Vendor
It's a good alternative to become parallel infrastructure purely dedicated for testing, but it lacks the ability to control interim status messages.

What is most valuable?

1) Easy to install and setup (including setup to run as windows service)

2) Free and always available alternative to any other build solutions

3) Relatively simple and intuitive UI

4) Big number of pretty useful plugins

5) Easily configurable and scalable

How has it helped my organization?

In some of my projects I had a chance to participate we used to use some commercial solutions like TeamCity or Bamboo. Since we had limited number of build machines and build agents it was really hard to organize automated acceptance and high-level system test runs as it took a while to perform the run.

Even more, since we had restricted number of build agents the huge number of long-running tests could make serious bottle-neck to the entire build process, hence, the feedback is a bit delayed. Jenkins appeared to be a good alternative to become parallel infrastructure purely dedicated for testing.

The bottle-neck problem was mitigated and we were able to make large scale runs on infinite basis. Thus, we could get results 2-3 times a day instead of 1 which brought us more consolidated and consistent picture about application under test state during the day. This trick was helpful for me on many projects

What needs improvement?

A lot of features (even small ones) can be taken from existing analogs. E.g.:

1) Ability to control interim status messages. This feature exists in TeamCity where you can log a message of specific format and it could change the build text and temporary status. In particular it's useful to see the number of tests already passed/failed without waiting for the completion

2) When we need to restart the server while some jobs are running it could be useful to re-run those dropped jobs after restart automatically.

3) There is some set of plugins which is being set up very frequently for many projects. It could be useful to have some pre-defined installations which either contain all necessary plugins by default or install them at the initial run (to decrease the size of initial application package)

Generally, other systems have lots of features which could be useful to see in Jenkins

For how long have I used the solution?

Since 2009. At that time it was called Hudson

What was my experience with deployment of the solution?

No. Deployment easiness is one of the advantages of Jenkins

What do I think about the stability of the solution?

From time to time Jenkins experiences problems after 1-2 weeks of intensive work (where at least 1-2 jobs are running at any point of time).

There used to be some issues when entire configurations could become invisible from the UI (usually that could happen after unexpected system shut down or even simple configuration rename operation) which was a bit painful. But I didn't encounter such problems in the most recent versions. So, it definitely indicates that some work at this direction was definitely done.

What do I think about the scalability of the solution?

No

How are customer service and technical support?

Customer Service:

Never had a chance to communicate

Technical Support:

Never had a chance to communicate

Which solution did I use previously and why did I switch?

Mainly Jenkins used to be either main system or parallel solution. Major reason for using it was mainly related to:

1) Licensing

2) Limited capacity of build agents

How was the initial setup?

Setup is pretty straightforward

What about the implementation team?

Both in-house and vendor

What's my experience with pricing, setup cost, and licensing?

It's free. There's no advice required

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Java Developer at a financial services firm with 10,001+ employees
Real User
Top 20
Helps with continuous integration but onboarding could be smoother
Pros and Cons
  • "Jenkins is stable, user-friendly, and helps with continuous integration. As of today, I can't see any tool that's better than Jenkins."
  • "The onboarding of Jenkins should be smoother, and it should have more pipelines available as it's deployed on many different servers."

What is our primary use case?

I primarily use Jenkins to deploy APIs for microservices, creating pipelines and providing the source code link.

How has it helped my organization?

Jenkins helps to maintain continuous integration whenever we make changes in the code and to deploy the code whenever we do any check-ins.

What needs improvement?

The onboarding of Jenkins should be smoother, and it should have more pipelines available as it's deployed on many different servers. We should be able to do minimal configuration changes and deploy our API from multiple regions like AWS, GCP, or virtual environments like VM.

For how long have I used the solution?

I've been using Jenkins for six years.

What do I think about the stability of the solution?

Jenkins works perfectly well - we've never faced any outages or issues with it.

How was the initial setup?

The initial setup isn't difficult.

What about the implementation team?

We implemented using an in-house team.

What other advice do I have?

Jenkins is stable, user-friendly, and helps with continuous integration. As of today, I can't see any tool that's better than Jenkins. If you have very few APIs which can be deployed manually, I wouldn't recommend Jenkins. However, I would recommend it for those with multiple APIs and many clients, who are doing code changes on a daily basis. I would give Jenkins a rating of seven out of ten.

Which deployment model are you using for this solution?

Private Cloud
Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
PeerSpot user
Software Tester at a tech vendor
Real User
Enables us to automatically build Python binaries into several operating systems
Pros and Cons
  • "We use Jenkins to automatically build Python binaries into several OS's i.e. OS X, Ubuntu, Windows 32-bit and Windows 64-bit."
  • "In our case, we have several products built using Jenkins. It is quite difficult to navigate into the latest stable build in a given OS."

What is most valuable?

We use Jenkins to automatically build Python binaries into several OS's i.e. OS X, Ubuntu, Windows 32-bit and Windows 64-bit.

How has it helped my organization?

We are a company run by remote workers. Using Jenkins really helps us in moving our products forward into a number of different customer segments.

What needs improvement?

I think the UI and the UX can be improved. In our case, we have several products built using Jenkins. It is quite difficult to navigate into the latest stable build in a given OS.

For how long have I used the solution?

Two years.

What do I think about the stability of the solution?

No stability issues.

What do I think about the scalability of the solution?

No scalability issues. As long as the configuration is set correctly, there is nothing difficult in scaling up.

How are customer service and technical support?

Jenkins is a free and open source application. So, StackOverflow is more than enough for us.

Which solution did I use previously and why did I switch?

From the very beginning, we wanted to target OS X, Ubuntu and Windows users. At first, the developer would manually create some builds and put them in Gdrive to be tested. We started to use Jenkins when we had some multiple developers and testers and needed a system to manage and automatically build our products.

How was the initial setup?

In my company, my role is a software tester. I don't know whether the setup is difficult or not.

Which other solutions did I evaluate?

We went directly to Jenkins.

What other advice do I have?

Don't focus on the fact that Jenkins is open source. It is tough as a rock.

This software is ideal for you who work in software development especially those using Agile methodology.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
PeerSpot user
Developer at a tech services company with 51-200 employees
Consultant
It’s not the best looking tool. It’s simple but can be complex and it has a load of plugins available for it.

It’s interesting how many places still don’t use continuous integration tools like Jenkins and how many places don’t automate their deployment systems. If that all sounds like
goobledegook to you, or if it makes sense but you’ve never used anything like it then
this post is for you.

Life before Jenkins

Before we talk about Jenkins I think it’s worth talking about my experience of life before
Jenkins, which will be familiar to a lot of people. Here’s what might have happened in an
average working day pre-Jenkins:

  1. I would write some code and commit it
  2. Occasionally a project manager or designer or someone equally focused on interrupting my programming would ask to see the latest version of the project
  3. I’d update my code and show them and then they’d ask if they could have a play with it from their computer
  4. 4. I would then interrupt someone in charge of deployment and would ask them to deploy it somewhere
  5. This person would probably groan (because they’re in the middle of something) and say that they could do it in 15 minutes
  6. The project manager would roll their eyes and sit at their desk reading emails or updating a GANTT chart (or whatever project managers do) for 30 minutes (because the task the developer was doing took twice as long as expected)
  7. The deployer would open their FTP program and copy files up to the dev server, or SSH the files up or whatever, possibly missing a few files the first time and then having to do it a second time
  8. The project manager would complain the work he wanted wasn’t there.
  9. The deployer would realise he hadn’t updated his code and do the process again
  10. Three hours later the same thing the process would start again…

It’s a slow, error prone, painful process and we haven’t even talked about deploying to staging or live environments yet. A major problem is also that a lot of people are unsure what the exact state of the project is because they never know if what they’re looking at is up to date.

 Jenkins to the rescue!

Here’s how that above process would work with Jenkins running.

  1. I write some code and commit it.
  2. Moments later the code is on a development environment without anyone having to do anything.
  3. The project manager looks at the development environment whenever they want to knowing it has the latest work on it
  4. The QA tester checks the release on the development environment and clicks a button in Jenkins to deploy to the staging environment.

Simple! (I even added an extra staging deploy part in there to look extra clever)

So, what is Jenkins?

The Jenkins CI (that’s its proper name) website describes it as “an awardwinning
application that monitors executions of repeated jobs, such as building a software project or jobs run by cron.”

So Jenkins is a tool that can be used to do any kind of repetitive task, but the added bonus of Jenkins is that these repeated tasks can be monitored and report information and make it easy for people to initiate these tasks or have them initiated automatically.

So for example, you might have a .Net project which is the server aspect to a project with iOS and Android apps. Jenkins can build and deploy the .Net project whenever changes are made so the latest version is available. The iOS and Android applications can also be built when code is changed and can be deployed via tools like TestFlight.

The “continuous integration” part comes into play when you have multiple developers working on a project. Jenkins is constantly building the latest version of the project from all developers' code so your work is being integrated (and deployed) continually.

I’m not going to get too deep into technical details since you can get those from the Jenkins website or via the excellent “Jenkins: The Definitive Guide” book but I’ll talk about what Jenkins would for a .Net project with a simple HTML/CSS/JS frontend codenamed
“Gumboots”.

  1. In Jenkins there is a “Gumboots” job which has been configured with the details of a
    GitHub repos containing the code for the project
  2. GitHub has been configured to hook into your “Gumboots” job whenever the code
    changes
  3. A developer pushes some code to the GitHub repos. GitHub notifies Jenkins about the
    new code.
  4. Jenkins gets the new code and runs a build.
  5. Jenkins has been configured to do a few things when the build is run:
           a) It runs a load of automated test cases
           b) If those pass it then builds the project using the MSBuild plugiN
           c) If that works it then runs a Gulp tasks on the CSS and Javascript to minify                   them and concatenate them.
  6. If that is all successful, then it will deploy the new code over SSH to the developmenT server

If any of these steps fail, then Jenkins will send an email with details of the problem to people involved in the project and most importantly to the person who wrote the last piece of code that may have broken the build.

Setting up jobs for Android and iOS applications is very similar and follows the pattern of “get code”, “build code”, “deploy code”.

There’s even a Chuck Norris plugin to give you extra feedback about the state of your jobs. Now really, what more could you want?

What next?

I’ve described a basic, but powerful Jenkins job set up. This will do a lot for you, but it can be taken further. 

The kind of things that you can get Jenkins to do that might be useful for you are:

  • Create a pipeline which pushes a build to dev automatically, then to staging after a
    manual QA check and then to live when a release is required.
  • Integrate Jenkins with an issue tracker like JIRA so that as Jenkins deploys code it tells JIRA what issues have been released
  • Get Jenkins to automatically run migration scripts on your databases when deploying and also get Jenkins to do one click rollbacks of your project if things go wrong
  • Create a parameterised Jenkins job which takes some input and then spins up a new
    server based on that input for you.

There are lots of other tools similar to Jenkins of varying complexity and approaches. These tools are becoming increasingly popular as cloud services which can handle platform
configuration and provisioning as well as the code deployment aspect.

Jenkins has always worked well for me. It’s not the best looking tool, but it has a large
community, it’s simple but can be complex and it has a load of plugins for it.

Hats off to Kohsuke Kawaguchi and the Jenkins team for building us something so useful.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user