07101994 / boots

boots is a .NET global tool for "bootstrapping" vsix & pkg files. Just "boots https://url/to/your/package"!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

boots

boots

Azure DevOps App Center
DevOps AppCenter

boots is a .NET global tool for "bootstrapping" vsix & pkg files.

boots is useful for pinning a version of Mono, Xamarin, etc. when building projects on Azure DevOps Hosted Agents. You don't get to choose what versions of things are installed on each agent, so it makes sense to install things yourself for reproducible builds. It also allows you to install preview versions of things (or more recent!) before they come preinstalled on Hosted build agents.

Use it

dotnet tool install --global boots
boots https://url/to/your/package

boots currently supports Windows & Mac OSX, therefore:

  • On Windows - assumes the file is a .vsix and installs it into all instances of Visual Studio via VSIXInstaller.exe.
  • On Mac OSX - assumes the file is a .pkg and installs it

@motz gives a quick walkthrough on Twitch.tv:

Twitch

Use the Azure Pipeline Extension Task

Install the extension into your DevOps instance and add the task to a build or release, or use it from YAML:

steps:
- task: Boots@1
  displayName: Install Xamarin.Android
  inputs:
    uri: https://aka.ms/xamarin-android-commercial-d16-2-windows

You can install the Boots Extension from the VS Marketplace.

See the Boots Task Extension Source for more details.

If you don't want to use the extension, alternatively you can:

variables:
  DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
steps:
- script: |
    dotnet tool install --global boots
    boots https://aka.ms/xamarin-android-commercial-d16-2-windows

DOTNET_SKIP_FIRST_TIME_EXPERIENCE is optional, but will speed up the first dotnet command.

Some Examples

Install Mono, Xamarin.Android, and Xamarin.iOS on Mac OSX:

boots https://download.mono-project.com/archive/6.0.0/macos-10-universal/MonoFramework-MDK-6.0.0.313.macos10.xamarin.universal.pkg
boots https://aka.ms/xamarin-android-commercial-d16-2-macos
boots https://bosstoragemirror.blob.core.windows.net/wrench/jenkins/xcode10.3/72cb587a39c12dfaa20cd5a0b1eb60a908ff88a6/1/package/xamarin.ios-12.14.0.113.pkg

Install Xamarin.Android on Windows:

boots https://aka.ms/xamarin-android-commercial-d16-2-windows

I got each URL from:

To upgrade .NET Core on Mac OSX, assuming you have some version of .NET Core to start with:

boots https://download.visualstudio.microsoft.com/download/pr/1440e4a9-4e5f-4148-b8d2-8a2b3da4e622/d0c5cb2712e51c188200ea420d771c2f/dotnet-sdk-2.2.301-osx-x64.pkg

Url from: .NET Core Downloads. NOTE: I used the Network tab in Chrome to find the final URL.

App Center

samples/HelloForms.sln is a "Hello World" Xamarin.Forms project configured with boots installing newer versions than what is available on App Center:

AppCenter

See appcenter-post-clone.sh in this repo for an example of setting up boots. See the App Center docs for further detail about custom build scripts.

Cake

You can use boots from a Cake script, which is helpful if you need other logic to decide what needs to be installed.

#addin nuget:?package=Cake.Boots

Task("Boots")
    .Does(async () =>
    {
        var platform = IsRunningOnWindows() ? "windows" : "macos";
        await Boots ($"https://aka.ms/xamarin-android-commercial-d16-2-{platform}");
    });

Other CI Systems

boots has been tested, and appears to work fine on:

Any build environment that can be configured to run .NET Core 2.1, can run boots. If you have success on other CI systems, let us know!

About

boots is a .NET global tool for "bootstrapping" vsix & pkg files. Just "boots https://url/to/your/package"!

License:MIT License


Languages

Language:C# 60.4%Language:PowerShell 28.4%Language:Shell 11.2%