Pantheon Community

Terminus Build Tools Status and Request For Feedback

Background

@greg, @rvtraveller and I are working on an initiative to lower the barrier of using advanced continuous integration (CI) workflows with Pantheon. We are looking for feedback on whether this work is valuable to you and your team.

Please take some time to read the information about this initiative below and answer the questions. This will help us do work that best serves your needs!

Additionally, I encourage you to reply to this thread and discuss why a CI workflow with Pantheon is important to you, what are you struggling with when adopting/implementing this type of workflow (or what has prevented you from adopting a CI workflow).

Current Status of Build Tools

Version 1 of the Terminus Build Tools plugin, supporting Terminus 1.x and GitHub + CircleCI + Pantheon, has reached end of life.

Version 2 of Build Tools is currently in development and aims to add Terminus 2, GitLab and BitBucket Pipelines support.

What is Terminus Build Tools?

Terminus Build Tools is a plugin that extends Terminus, Pantheon’s command-line interface.

CI Project Creation and Scaffolding

Build Tools provides a way to scaffold new projects by connecting an external Git repository, a continuous integration service, and Pantheon using the terminus build:project:create command.

The goal of the project creation command is to reduce the work of setting up SSH keys for authentication, declaring environment variables, etc. needed to make this connection for each new project as doing so manually is time-consuming, error-prone, and cumbersome.

Additional Terminus Commands

In addition to scaffolding new projects, Build Tools adds additional Terminus commands that are useful in a CI setting. For example, terminus build:env:create will create a new multidev environment and deploy the contents of the current directory to the multidev.

The goal of these commands is to take common tasks that would normally need more scripting to work and to consolidate/standardize them into single commands.

Which repository + CI provider support combinations are important to you?

  • GitHub and CircleCI
  • GitLab
  • BitBucket and Pipelines
  • Other

0 voters

Are you using Build Tools? If so, which version are you using?

  • I am not using Terminus Build Tools
  • Version 1
  • Version 2
  • A mix of versions 1 and 2

0 voters

Related Work

In addition to the Terminus Build Tools Plugin, Pantheon also maintains supporting repositories as part of the larger Build Tools initiative.

Example Repositories

These repositories demonstrate a fully-built CI process including Composer support, a build step, deployment to Pantheon and automated testing.

These examples are meant to be a starting point for new projects so that CI configuration and bash scripts do not need to be developed from scratch.

Did you know that you can fork our examples and use your own repository as a starting point for new projects with terminus build:project:create? This is useful if you need a different set of automated tests, a modified build step, or just want a common set of modules or plugins to be installed on each project.

  • Yes, I know you can use a custom repository as a starting state for terminus build:project:create
  • No, I didn’t know you can use a custom repository as a starting state for terminus build:project:create

0 voters

Do you find the custom starting state feature valuable?

  • Yes, I find the custom starting state feature valuable
  • No, I do not find the custom starting state feature valuable

0 voters

Dockerfile

Pantheon also maintains the docker-build-tools-ci repository.

The docker image aims to provide the tooling needed to run the scripts in the example repositories in a single image. The image follows semantic versioning and the current version, 6.x, can be by referencing quay.io/pantheon-public/build-tools-ci:6.x

What parts of the Build Tools initiative are most valuable to you?

  • Scaffolding new projects and setting up CI providers with Pantheon (configuring ssh keys, environment variables, etc.)
  • The CI best practice example repositories
  • The Docker image with Pantheon related tooling pre-installed
  • All of it! If we have one but not the others Build Tools is not valuable.

0 voters

Discuss

If there is anything you think we should know, or think I have missed in this post, please leave a reply :-). If you want to report bugs or make a feature request for the Build Tools plugin, the example repositories, or the Dockerfile please open an issue on GitHub for the respective project.

1 Like

By far the most helpful thing about Build Tools for me was the excellent “getting started” guide. I am a part-time developer so I need all the help I can get, and having a step-by-step detailed guide to lead me through the process was a huge help and one of the main reasons I chose to keep all my sites on Pantheon instead of going elsewhere when prices increased.

2 Likes

Thank you for your work on the build tools. I’ve been using them since early last year. Using CI with a build process was a big shift in the way I operated, but it was an important shift I didn’t realize going into it how beneficial it would be and build tools were a perfect quick-start. I was able to jump right in with something that worked and customize it for my needs.

1 Like

Have been playing around with Build Tools a little bit and it works well. The main thing that was missing for me as a new user of Build Tools was how it will fit in with the idea of a custom upstream, which spun off this request: https://github.com/pantheon-systems/documentation/issues/4907

For those following along, we have released Build Tools Beta 15. The README has been updated with lots of new information as well.

It includes support for Pantheon’s new global regions as well as private repository support for build:project:create and some GitLab improvements.

The example-drops-8-composer and example-wordpress-composer repositories also have a new CI script structure and workflow for better readability as well as update CircleCI and GitLab configuration files.

The 6.x tag of pantheon-systems/docker-build-tools-ci Docker image has also been updated with the new Build Tools Beta 14. You can use it by referencing quay.io/pantheon-public/build-tools-ci:6.x in your CI tool of choice.

Now that GitLab support work is wrapped up, we will be working on BitBucket support on the way to a 2.0.0 stable release!

If you have feedback, please open issues or the corresponding repositories or comment in this thread.

Hi all,
I am currently working on updating our Build Tools guide on the Pantheon docs site. You can view a preview of the in-progress guide update here

So far, only the first two sections (introduction and create project) have been updated. The other sections will take quite a bit of work as we will need to vary the content, screenshots, etc. for WordPress/Drupal and for each Git/CI provider.

Our docs were recently converted to Gatsby, so I am working on adding some interactivity to the guide with React. You can see it a bit at the end of the intro (selecting a Git Provider and CI Provider) but it really shines in the create project section, which now has an interactive build:project:create command generator.

If you have any feedback on the introduction or create project sections, I’d love to hear it. Feel free to post comments here or on the docs pull request.

5 Likes