Running build agent in containers is a great solution for achieving flexibility and reducing the costs of maintaining build agents.
In this article, I will run through all the steps needed to start one.
The first step is creating a folder containing a Dockerfile.
We then create an Azure Container Registry.
az group create --name buildagent --location uksouth
az acr create --resource-group buildagent --name alberto --sku Basic
We build our image using an Azure Registry Task.
az acr build --registry alberto -t buildagent:v1.0 --platform windows .
Code coverage is a measurement of how many lines/blocks/arcs of your code are executed while the automated tests are running.
Code coverage is collected by using a specialized tool to instrument the binaries to add tracing calls and run a full set of automated tests against the instrumented product. A good tool will give you not only the percentage of the code that is executed, but also will allow you to drill into the data and see exactly which lines of code were executed during a particular test.
Code coverage is important. The real benefit of having unit tests can…
HttpClient.PostJsonAsync is one of the new excellent improvements that have been made available with .NET 5.
One of the most accepted way to send a JSON using
HttpClient is by serialising an object into a string and wrap it into an
StringContent as discussed in this StackOverflow response:
When we must send a huge JSON and/or when this happens often, we might be looking for a means to serialise the object we want to send in small chunks and send them directly to the network.
This couldn’t be easier thanks to
HttpClient needs no introductions is one of the…
Branching strategies — like feature branching or trunk based development — can help development teams move fast. It can orchestrate parallel development allowing developers to work on tasks simultaneously as part of a team.
In this article, I will look at different branch strategies and the tools that modern source control systems offer to implement them.
Branches allow developers to isolate work from that of other developers.
This allows working on a feature without worrying about breaking the work of others. Branches are also used to handle versioning.
Creating branches come at a cost named integration debt.
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections of information. Version control is a component of software configuration management.
Version control systems are used to protect the investment made by companies in code and to enable team working:
Version control protects source code from both catastrophe and the casual degradation of human error and unintended consequences.
Software developers working in teams are continually writing new source code and changing existing source code. The…
Some of the components that would make a comprehensive logging solution are:
In this article, I will look at what they are and some of the solutions provided by Microsoft.
Assess and Configure a Log Framework
A logging framework simplifies creating logs.
It generally provides an easy way to configure:
Continuous Everything. The process is a journey and requires a growth mindset to continually evolve and improve.
In the previous article, we looked at what are the four pillars that support DevOps at Microsoft.
In this article, we will look at the eight functions of DevOps.
Continuous planning is more planning.
Traditional software development teams use to plan all the features that they will release for the entire year ahead. A big bang release would follow months of design, development and testing.
The problem with such long term plans is that they tend to become obsolete very quickly…
No matter at which point you are in your technical journey, you will have heard of DevOps.
But what does DevOps means?
A typical definition of what DevOps means is:
DevOps is the union of people, process, and products to enable continuous delivery of value to our end users.
Typically, the goal for Development is to deliver more features faster, and the goal of Operations is to achieve better system stability. DevOps aligns these disciplines by using a framework of best practices proven to increase speed to market while improving system stability.
The objective of DevOps is to maximise the…
When we modify the text of an HTML input while the user types using React, we may see the caret jumping at the end of the text.
This happens typically when we modify the length of the text the user is typing.
In the example below, a React component is stripping away the ‘&’ illegal characters from the string ‘asd&fasfe’:
Alberto De Natale is a passionate tech-enthusiast software developer.