When a new piece of software is finished with development, Realized Solutions must run through many steps to prepare the software for the testing environment and ultimately deploy it to the client. The software begins as a collection of classes and folders in Visual Studio, RSI’s integrated development environment, that can compile a project into digital libraries and corresponding executable file. This output can be used on other machines, but as part of the security process RSI must run everything through Obfuscation, a process by which we make the libraries and executables unreadable by any outside presence.
RSI has been using Azure DevOps to host our repositories remotely and track our changes for years. As part of our efforts to be more efficient we’ve begun implementing Azure Pipelines, a Microsoft feature designed to integrate several delivery steps into one automated process. The pipelines perform the often-monotonous steps developers take to prepare for the test environment in the background without any outside interference or handholding. They are capable of building, publishing, running unit tests, obfuscating and much more.
More specifically, the pipeline follows steps laid out in a specific area, yml (pronounced yam-uhl) file we compose. The steps dictate the repository be rebuilt, for certain NuGet packages to be installed on the Azure cloud server performing the operation, in order for unit testing methods from specific classes to be ran in specific order. If necessary, certain libraries or executable files can be processed through an obfuscation technique, and the resulting files are packaged into a zip file downloadable from the Azure server upon completion, among other possibilities.
Having the Azure server perform these steps on RSI’s behalf, and without the need to manually trigger the process at times, allows us to utilize time effectively and assists making deployments smoother.