Skip to content

Studio Software Studio Software Studio Software Studio Software blog

  • Home
  • About us
  • Services
    • Software Development Creating professional web and mobile applications
    • Maintenance & Support Monitoring, maintaining and developing apps
    • Strategy & Design Building prototypes, MVPs and designing apps
  • Portfolio
  • Careers
  • Blog
  • Contact
  • EN
  • PL
    • EN
    • PL
  • enpl

Studio Software

  • Home
  • About us
  • Services
    • Software Development Creating professional web and mobile applications
    • Maintenance & Support Monitoring, maintaining and developing apps
    • Strategy & Design Building prototypes, MVPs and designing apps
  • Portfolio
  • Careers
  • Blog
  • Contact
  • EN
  • PL
en pl

© 2018 Studio Software | Made in Poland.
Studio Software Sp. z o.o. (Polish Ltd.) is a limited liability company, with its registered office in Wrocław (50-069), ul. Ofiar Oświęcimskich 17, incorporated in the Register of Entrepreneurs maintained by the District Court for Wrocław-Fabryczna, the 6th Commercial Division of the National Court Register, under the KRS number 0000680423, VAT ID: PL8971840468, share capital 262.000,00 PLN.

Watchful Mr. Jenkins – a little about Continuous Integration.

Michał DevOps Engineer  •  Jul 3, 2017

The one who does not make a mistake, usually does nothing. Mistakes happen. However, it is important as to quickly and effectively eliminate and draw conclusions. An effective form of error verification is the well-known by software developers Continuous Integration. One of CI’s most popular tools is Jenkins, which allows you to automate the development process, such as running a test, building a project, or collecting information about your operations by setting up tasks (called “jobs”).

As we all know, developers send source code to the repository. After that, Jenkins starts a game – it can e.g. automatically download the code (for example, from a BitBucket webhook that informs him about it) and goes to the assigned  set of actions. This can be i.e. compilation, starting unit tests, adding changes to the test environment. Tasks can be set in different, appropriate way for us. For applications based on modern PHP frameworks and frontend frameworks like React, the first task will be to start Composer to update packages, run webpack to compile JS and CSS files, then run Jenkins to perform the unit tests necessary to test every single part of the application and detect errors in the early phase. In addition, Jenkins can run static code analysis and launch automated tests (such as Selenium) to minimize the need for manual tests or regression testing and simply automatize the entire web application testing process. If you use Docker, it can also build whole docker container images and upload them to Docker Registry (you can use Amazon ECR for that).

Inform and release changes as soon as possible!

The most significant, fundamental feature of continuous integration is communicating information as quickly as possible. We can rely on that with Jenkins. Each deviation detected in the test is appropriately communicated by sending a message to the team’s integrated mailbox or via communicator (e.g. Slack). Jenkins can also gets in touch with developers on Twitter, Skype, or talk to an app on smartphones 🙂

Jenkins - sample view

The main view of ‘job list’ in Jenkins – you can see the status of the last build and some additional information.

The notification mechanism is extremely easy to work with because it knows almost immediately which code is OK and which does not work properly and needs to be corrected. CI carefully checks for all errors in the code provided by the developer in every new version thrown into the repository. Jenkins will also tell you where the error in the file is located and who is responsible for it [our blog post about the system of “penalties” and “prizes” for team members will be available shortly].

Jenkins will also notify us when the problem is resolved. Appropriate information will reach every programmer interested in the project, and as a result, the entire team is aware of the current status of work and it is easier to plan the tasks. After a successful build process, we can finally release our changes into the selected environment – during daily work, the changes land on the “dev” environment, where programmers and testers can test the given functionality. Jenkins is also responsible for releasing these changes into the “stage” environment as well as production. You will save a lot of time this way, and releases will become easier, more stable, so that they will be done more often.

Static code analysis

One of the next sample things that Jenkins can do, is performing static code analysis – it analyzes syntax correctness, finds dangerous and outdated features, memory leaks, buffer overflows, SQL Injections, it can detect unnecessary code repetitions or unused elements. This allows you to increase productivity, detect bottlenecks or inefficient construction. In addition, we can automatically verify that the developer has actually made the appropriate description in the code for the classes and methods (so-called doc) – if the programmers had forgotten it, it would not be possible to generate documentation for the project. However, it must be remembered that Jenkins is not for writing the documentation itself, but only for the generation and automation of the process.

What can I use Jenkins for?

C#, NodeJS, PHP, Java? It doesn’t matter – Jenkins is for everyone. The application is cross-platform, so it can be installed on Windows, Ubuntu, MacOS. In addition, although Jenkins is written in Java, it is suitable for all projects, even those created in C #/NET. Jenkins supports the automation of some of the code development, test, and documentation procedures. This is a powerful compendium of information about your project. And last, but not least, it really helps in releasing changes to different environments (dev, stage, production). Once used, you’ll see a lot of benefits and save a lot of time. Is it worth? We think you know the answer.

Development Operations
Share story

Subscribe to our monthly newsletter!

If you want to subscribe to our monthly newsletter, please submit the form below.

Popular in this category

Docker: an excellent tool for programmers and administrators.

Docker allows to easy control system libraries. It creates a common framework, making it possible to work with distributed applications. When using Docker containers, you don’t have to worry about environment dependencies that could result in probl...

How to control your apps and infratructure with Zabbix?

Infrastructure and server state control is a responsibility of every administrator. Awareness of state of all devices we use in our everyday work is extremely important to us. This is primarily about the operation of servers, applications, specific s...

Clarify the requirements. How the Product Backlog Refinement works?

Product Backlog Refinement is one of the sprint stages. This is not a formal scrum process, but it is still recommended by professionals. Product Backlog Refinement - what is it? General sprint rules are familiar to us. When a Product Owner's Produ...

Studio Software.

Business Partnerships, Inquiries [email protected]

Marketing & PR [email protected]

Human Resources, Job applications [email protected]

Office Management [email protected]

Company.

Homepage
About us
Portfolio
Careers
Blog
Contact


We are a member of:

Services.

Software development
Maintenance & Support
Strategy & Design
Custom software development
Web development
Frontend development
Backend development

Contact us.

+48 575 331 308

[email protected]

Studio Software Sp. z o.o.
Ofiar Oświęcimskich 17
Wrocław, Poland
VATID: PL 897 184 04 68
 

© 2019 Studio Software      Privacy Policy
Studio Software Sp. z o.o. (Polish Ltd.) is a limited liability company, with its registered office in Wrocław (50-069), ul. Ofiar Oświęcimskich 17, incorporated in the Register of Entrepreneurs maintained by the District Court for Wrocław-Fabryczna,the 6th Commercial Division of the National Court Register, under the KRS number 0000680423, VAT ID: PL8971840468, share capital 262.000,00 PLN.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

This site uses cookies, which collect and process your data for profiling content to fit your needs, as well as for statistical purposes and to improve the quality of our services and ensure the safety. You can disable their use in your browser settings.