Chapter 11. Creating Custom actions

The code that underlies a GitHub action can be very simple or very complex. It can range from a simple shell script to a collection of implementation code, test cases, and workflows (for testing, validation of content, and other CI/CD tasks). At some point after you have been using GitHub Actions for a while, you may want to start creating your own. This can be done to provide a customized version of another action or to create a specialized action from scratch.

Before You Start...

Before starting down the path of creating your own actions, it can be helpful to search through venues like the Actions Marketplace to see if there is already an action that does what you want.

Actions can provide functionality by calling GitHub APIs, running standard shell steps, or implementing custom code. And they can execute either directly on runners (discussed in Chapter 5) or in a Docker container. This provides a high degree of flexibility when creating a custom action.

In this chapter, we’ll look at how to create and work with custom actions by covering the following topics:

  • Describing the anatomy of an action
  • Discussing types of actions
  • Creating a simple composite action
  • Creating a Docker container action
  • Creating a JavaScript action
  • Putting actions in the marketplace
  • Working with the GitHub Actions Toolkit
  • Discussing local actions

Let’s start by defining the piece that makes a repository available as an action—the interface file.

Anatomy of an action ...

Get Learning GitHub Actions now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.