Skip to content

Toolchain Templates

huayuenh edited this page Aug 8, 2022 · 18 revisions

What is an Open Toolchain Template?

An Open Toolchain Template is a parameterizable set of integrated tools that can be used and customized as a basis for a project's devops process.

They're great for getting groups of people all on one page setup with a development process that will let them author, build, test, and deploy their code.

Open Toolchain (OTC) Templates are customizable so teams can craft a set of templates specific to their organization that will help them get new projects up and running quickly with a known set of well-integrated tools.

IBM Cloud DevOps comes with a few built-in templates to help you create your first toolchains and understand concepts. You can take a look at some existing templates today in the Open-Toolchain GitHub repo.

What makes up an Open Toolchain Template?

The components of an Open Toolchain Template are described in the following sections:

toolchain.yml

Each Open Toolchain Template must contain, at minimum, one main toolchain.yml file. This file describes the tools that are to be integrated. The toolchain.yml file can also provide default values that are to be displayed when the template is rendered.

Individual files for tool integrations, UI customization, and translations

Although it is possible to write your entire template in just the toolchain.yml file, it is sometimes more convenient to separate the various tools into individual files and include them into the main toolchain.yml file. Any portion of the template can be broken up into a separate file and included by using the file: directive.

The following are two common use cases where you might want to consider breaking up the toolchain.yml into smaller files:

  1. When you are writing a custom UI that overrides the default UI for a tool

  2. When you want to provide translations for your template

GitHub repository and .bluemix folder

In ordered to be rendered, templates must reside in a publicly available git repository.

Within the repo, all files must go under a top-level folder called .bluemix.

Example

Here is the Open Toolchain Template directory structure for a Simple Toolchain. Note that the files are all under the .bluemix folder.

You can see the toolchain.yml file is there as well as some individual files.

How do I create an Open Toolchain Template?

It's probably easiest to start off with the Simple Toolchain Template and customize it to suit your needs.

The Boilerplate Template contains two tools: GitHub and a Pipeline. You can fork the repo into your GitHub account and start making some changes.

You can customize it in the following ways:

Provide New Template Metadata

You can change the description and image that gets displayed by changing the <> and <> elements.

Add Remove Tools

You can add or remove which tools will appear on the page. Consult the services page to get an up-to-date list of all the tools that can be included in the template as well as the parameters that you need to configure.

How can I see my new template?

To see the new template in action you can paste the URL for your template repo into the following format, replacing "YOUR_GIT_REPO_URL", and then add the resulting URL to your browser.

[https://console.ng.bluemix.net/devops/setup/deploy?repository=YOUR_GIT_REPO_URL]

Where do I go from here?

Once you've gotten your started and have successfully customized the Simple Toolchain, you can consult the Template File Format guide for a comprehensive example of what else you can do.

You should also browse the Open Toolchain org repos and take a look at some of the other sample templates to see some more complex examples of templates. You can clone any of them, and customize them further.

Clone this wiki locally