Table of Contents

Platform-independent CI/CD

As several technology stacks are used all over the world to handle source control and CI/CD (GitHub, GitLab, Git, Azure, etc.), it is vital to provide tooling and libraries that can run on any of these.

At Skyline Communication we tackle this in two ways:

.NET Tools

These tools are the workhorse behind a lot of the CI/CD. They can be run on Linux or Windows systems from command line and can be triggered from any CI/CD technology stack (GitHub Actions, GitLab pipelines, Azure pipelines, etc.).

The only requirement is an internet connection.

For example:

dotnet tool install -g Skyline.DataMiner.CICD.Tools.SDKChecker
SDKChecker "PathToSolutionWorkspace"

In the example above, PathToSolutionWorkspace should be a path to a Visual Studio Solution directory. This tool detects if a project is legacy-style or SDK-style. Feel free to try this out on your local computer as a test.

The following tools are the most useful:

  • Skyline.DataMiner.CICD.Tools.Packager

    This .NET tool allows you to create application (.dmapp) and protocol (.dmprotocol) packages starting from a Visual Studio solution as created by DIS. It can be used to package Visio drawings, dashboards, connectors, Automation scripts, etc.

  • Skyline.DataMiner.CICD.Tools.CatalogUpload

    This .NET tool allows you to upload application (.dmapp) packages directly onto Skyline's Azure cloud storage. This can be done without registration, so that you just use the returned GUID for further actions, or with registration, which will make it visible on your private catalog UI.

    Note
    • Currently, the private catalog UI is not visible yet.
    • Currently, uploading protocol packages (.dmprotocol) is not supported yet.
  • Skyline.DataMiner.CICD.Tools.DataMinerDeploy

    This .NET tool allows you to deploy application (.dmapp) packages to a DataMiner System. You can either do this by using the artifact ID that is returned when a catalog upload is performed, or with a .dmapp directly to a DataMiner Agent you have direct access to.

  • Skyline.DataMiner.CICD.Tools.SDKChecker

    Most tools and code these days only work either on legacy-style or SDK-style Visual Studio projects. This dotnet tool will check if every project in a Visual Studio solution is SDK-style or legacy-style. Calling it while providing the path to the workspace will return a "#"-separated list with all project names that are still using legacy-style.

  • Skyline.DataMiner.CICD.Tools.NuGetPackageConfigDetector

    In legacy-style projects, you can use either the packages.config or the packageReference package management format (SDK-style projects only support the packageReference package management format). This dotnet tool checks if legacy style uses the packages.config package management format. Calling it while providing the path to the workspace will return a "#"-separated list with all project names still using the packages.config package management format in legacy-style projects.

  • Skyline.DataMiner.CICD.Tools.NuGetToggleOnBuild

    When creating libraries that end up as NuGet packages, you will often let MSBuild automatically create the NuGet packages. However, during a pipeline run you often need to run MSBuild more than once. This tool allows you to disable or enable creation of the NuGet packages during MSBuild. This helps in avoiding a pipeline to create the NuGet packages more than once.

  • Skyline.DataMiner.CICD.Tools.NuGetPreBuildApplyBranchOrTag

    When creating libraries that end up as NuGet packages, this tool changes the version of the to be created NuGet packages and assemblies in your solution to the specific version (this is often the tag you provide in Git). It also allows you to provide the name of a branch with a build number that will then create a pre-release version from that data.

  • Skyline.DataMiner.CICD.Tools.NuGetChangeVersion

    This allows you to change the version of a NuGet package used in your SDK-style project to a specific version (or the highest one).

  • Skyline.DataMiner.CICD.Tools.Validator

    This tool allows the validation of a DataMiner protocol solution. This is the same validator as is included in DataMiner Integration Studio (DIS).

    Note

    This tool requires that the projects of the protocol solution are SDK-style projects.

For the complete list, use NuGet and search for Skyline.DataMiner.CICD.Tools.

NuGet libraries

We also provide code libraries that can be used for development of custom programs. These contain functionality that we use when creating programs like the .NET tools or DIS. Providing these allows flexibility for other developers if they need to create their own extensions, programs, or tools specifically for your pipelines.

The following libraries are the most useful:

For the complete list, use NuGet and search for Skyline.DataMiner.CICD.