I need to migrate a lot of repositories from one Azure DevOps to another. Migration! Don't ask why, please. Let's assume it was much more simple than other options.
Nowadays with Kubernetes being so popular, building a Docker image is a must thing for CI/CD pipeline. For this kind of pipelines, an artifact is not a simple zip file wich compiled application, but a Docker image pushed to container registry. There is plenty of benefits of this approach but there is also price for this. We need to handle this in our pipelines. Hopefully, this price is not high. And we will explore today how we can build a Docker image for our dotnet core web app on Azure DevOps.DOCKERFI...
Gdy tworzymy jakieś API dobrze jest sprawdzić, czy ono działa. Po każdej zmianie albo dodaniu nowego punktu wejścia (endpoint) powinniśmy przetestować, czy wszystko jest ok. Możemy to zrobić uruchamiając aplikację i ręcznie wszystko sprawdzając, jednakże na dłuższą metę jest to bardzo czasochłonne. Dlatego warto utworzyć osobny projekt, w którym stworzymy testy sprawdzające czy nasze API działa poprawnie. W kilku punktach postaram się opisać jak u mnie z reguły wygląda taki projekt z testami API.
Od dłuższego czasu obowiązuje praca zdalna, a część osób próbuje się odnaleźć wśród różnych produktów ułatwiających zdalną komunikację. Postanowiłam więc zrobić kilka wpisów na temat narzędzia Microsoft Teams, z którego korzystam na co dzień. Ostatnio pisałam o czatach, kanałach i zespołach. Dzisiaj napiszę o części związanej z rozmowami i nagraniami.
EventPipeProfiler is a new cross-platform profiler that I’ve implemented in the BenchmarkDotNet library. It allows profile .NET code on every platform - Windows, Linux, macOS. Collected data are exported to trace files (.speedscope.json and .nettrace) which can be analyzed using SpeedScope, PerfView, and Visual Studio Profiler. This new profiler will be available from the 0.12.1 version.
Kolejne test różnych runtime .NET. Tym razem doszedł .NET 5, plus nowe benchamarki pod regexy.
Last time we created a gated check-in build for .NET Core app. It works very well, but we did there one thing which is in general a bad practice in our proficiency. We duplicated build steps for building and testing .NET Core app. We can do better than that, we can use templates. Following the documentation: Templates let you define reusable content, logic, and parameters. Templates function in two ways. You can insert reusable content with a template or you can use a template to control what is allowed...
Na jakie środowiska będziemy mogli wdrażać aplikację, jeżeli skonfigurujemy procesy CI/CD?
Standard CI build checks integrity of committed code after merge. This approach can lead to a state when code is not deployable due to failing tests or even failing compilation. Gated check-in helps to protect the integrity by verifying state before the merge. In that way, you can protect your master branch and avoid build breaks. In that way, you can ensure that your master branch is always deployable (what is crucial in GitHub flow) and you will not interrupt your colleagues with your obvious mistakes....
Docker has built in great cache mechanism, but to be able to use it, you have to understand how it works.
You may not know this, but there is a part of Allegro codebase which we started developing in C# due to some special requirements. This implies new programming opportunities and challenges — one of these is creating a completely new .NET Core starter project. Let’s explore one potential solution: dotnet new templates.
The goal of Cache@2 task is improving build performance by caching files between pipeline runs. It supports multiple types of packages likeBundler gemsnpm packagesYarn packagesNuGet packagesMaven artifactsGradle artifactsccache artifacts Further, we will focus on caching NuGet packages however in a similar manner we can configure this task for other types.Locking dependencies Before we configure cache task we need to lock dependencies to create packages.lock.json file as we need that file to set a prop...
Azure DevOps can do many marvelous things. It gives you process transparency and automation and so much more with logging and simply more control of the CI/CD processes. Here is a story on how to manage and automatically control you deployment process using enterprise tools.
W poprzednim poście pisałem o bibliotece FluentValidation i jak ją dodać do naszego projektu. W tym poście skupimy się na bardziej zaawansowanych funkcjonalnościach, jakie nam ta biblioteka udostępnia: - Walidacja złożonych właściwości (manualna i automatyczna) - Wspólny walidator właściwości - Walidacja listy - Własny komunikat błędu walidacji - Wspólne walidatory - Warunki walidacji - Reguły zależne od siebie - Wywołanie zwrotne - Asynchroniczna walidacja
W prawie każdym projekcie jest potrzebna jakaś walidacja danych. Klasy służące do walidacji można napisać samemu, ale można również skorzystać z gotowych bibliotek. Najbardziej lubię FluentValidation. Jest to biblioteka, która ułatwia tworzenie „walidatorów” – klas zawierających reguły walidacji.
Ngrok to mała aplikacja, która umożliwia tunelowanie ruchu. Przydatne wtedy, kiedy istnieje potrzeba wystawienia “czegoś” publicznie na świat. Tym “czymś” może być strona www, aplikacja, serwer. Działa to w następujący sposób: uruchomiona aplikacja ngrok.exe łączy się z chmurą ngrok, która akceptuje ruch na publicznym adresie. Otrzymany ruch z publicznego adresu przekazuje do procesu ngrok.exe uruchomionego na naszym komputerze, który dalej przekazuje owy ruch do lokalnej aplikacji/serwera.
Niedawno postawiłem świeży stos ELK (Elastic Search, Logstash, Kibana). Wszystko fajnie śmigało przez trochę ponad 2 tygodnie aż przestało.
In my previous post, I presented how we can deploy multiple visual studio database projects using Fake build tool. Here, I will present another option which is possible with version 5.19.0. This version has a new module called Fake.Sql.SqlPackage, which is a redesign of previous Fake.Sql.DacPac module. The reason, why the previous module needed redesign, it was a missing option (from my point of view crucial option) - publish profiles. I raised that point on GitHub here and solved it with this pull requ...
This story has begun quite long ago. I got a chance to work on projects without the automatic deployment process. It was strange a bit because we had deployments process for both front-end and back-end projects, but not for databases. For databases, we were generating SQL scripts from Visual Studio, and then we executed them in our Test environment. This was a perfect place to save our time and FAKE did the right job here. We use Visual Studio SQL Server DB projects to handle SQL scripts. And exactly th...
The BenchmarkDotNet library is great for creating benchmarks that can be run on a local machine in a very simple way. In this post, you will learn how to run them in a Docker container with a different operating system or using a different .Net Core version.