TeamCity Hosting Plugin

Total: 3 Average: 5

This is the second part of the article related to the question of the TeamCity plugin implementation and hosting. If you haven’t seen the first article yet, feel free to check it out here. It uncovers the process of implementing a Jenkins plugin from scratch.

To upload your plugin to the official TeamCity plugin marketplace (JetBrains), you should perform the following steps:

  1. Fill the teamcity-plugin.xml file with the plugin information;
  2. Choose the license type under which you want to distribute your plugin;
  3. Upload the plugin to the company’s website;
  4. Prepare additional resources for publishing (plugin description, screenshots, etc.) 
  5. Create an account on JetBrains Plugin Repository;
  6. Publish the plugin with the help of jetbrains;

Read More

Implementing a TeamCity Plugin

Total: 1 Average: 5

Steps for implementing a TeamCity Plugin include:
• Preparing the development environment
• Generating a Maven project
• Implementing the plugin’s UI
• Organizing the business logic of the plugin.

A plugin in TeamCity is a zip file containing a Java class file, JSP files, resources, and plugin descriptor files.

Read More

Developing Azure DevOps Extension

Total: 5 Average: 5


Azure DevOps Services provides a lot of space for importing your custom extension. Work items, pipeline tasks, dashboard widgets, and other options can serve this purpose.

This article will be about developing extensions for pipeline tasks – I will describe how to create the easiest sample extension that will help organize your own continuous integration.

But first, let’s describe the whole process of hosting the extension on Azure DevOps and how it works. Then we will discuss its detailed development route. Read More

DevOps Solutions for Database Development Automation

Total: 3 Average: 5

What is DevOps?

Database DevOps is a philosophy that comprises the following concepts:

  • automating the development, deployment, documentation, testing, and monitoring processes between software developers and operations engineers
  • integrating the development and operations processes to efficiently synchronize, validate, manage, and apply database changes

The Database DevOps practice is focused on improving the efficiency of database management. It helps with streamlining the process of deploying and improving databases by giving the ability to automate many aspects of the database lifecycle, thus speeding them up and simplifying them.

Therefore, DevOps is the best practice to unify development, operations, and quality assurance processes. Read More

Automated testing of the desktop application: expediency and frameworks overview

Total: 6 Average: 5


You have certainly heard about regression and acceptance testing. But do you know how much is actually spent on acceptance testing in a project?
We can quickly get an answer to this with the help of a time tracking system like TMetric.
On our project, acceptance-testing a desktop application of around 100 assemblies took more than 2 person-weeks. New QA specialists who didn’t know the application well were having the greatest difficulties. Compared to more experienced QA specialists, they spent much more time on each test case.
However, in my opinion, the most unpleasant part was this – if any critical errors are found before the release, acceptance testing must be performed again after these errors are fixed.
Written unit tests helped a little bit, but they still mostly reduced the time spent on regression testing. With this, when the amount of manual testing reached a critical level, we started moving towards automation. Read More

Hosting Plugins in the Jenkins Community Repositories

Total: 3 Average: 5

It is the third of a series of articles devoted to the problem of Jenkins plugin implementation and hosting. If you haven’t got acquainted with the first two articles yet, please feel free to familiarize yourself with Part 1 and Part 2 that uncover the process of implementing a Jenkins plugin from scratch. This article addresses the issue of hosting plugins in the Jenkins community repositories.

Read More

Database Normalization: A Primer

Total: 5 Average: 4

The Relational Model of data management was first developed by Dr. Edgar F. Codd in 1969. Modern relational database management systems (RDBMSes) are aligned with the paradigm. The key structure identified with RDBMS is the logical structure called a “table”. Tables are primarily composed of rows and columns (also called records and attributes or tuples and fields). In a strict mathematical sense, the term table is actually referred to as a relation and accounts for the term “Relational Model”. In mathematics, a relation is a representation of a set.

The expression attribute gives a good description of the purpose of a column – it characterizes the set of rows associated with it. Each column must be of a particular data type and each row must have some unique identifying characteristics called “keys”. Data change is typically more efficient when done using the relational model while data retrieval may be faster with the older Hierarchical Model which has been redefined in model NoSQL systems. Read More