Book Image

Mastering GitHub Actions

By : Eric Chapman
Book Image

Mastering GitHub Actions

By: Eric Chapman

Overview of this book

Navigating GitHub Actions often leaves developers grappling with inefficiencies and collaboration bottlenecks. Mastering GitHub Actions offers solutions to these challenges, ensuring smoother software development. With 16 extensive chapters, this book simplifies GitHub Actions, walking you through its vast capabilities, from team and enterprise features to organization defaults, self-hosted runners, and monitoring tools. You’ll learn how to craft reusable workflows, design bespoke templates, publish actions, incorporate external services, and introduce enhanced security measures. Through hands-on examples, you’ll gain best-practice insights for team-based GitHub Actions workflows and discover strategies for maximizing organization accounts. Whether you’re a software engineer or a DevOps guru, by the end of this book, you'll be adept at amplifying productivity and leveraging automation's might to refine your development process.
Table of Contents (22 chapters)
Free Chapter
1
Part 1:Centralized Workflows to Assist with Governance
7
Part 2: Implementing Advanced Patterns within Actions
14
Part 3: Best Practices, Patterns, Tricks, and Tips Toolkit

Creating our starter workflow

To create a starter workflow, navigate to the .github repository we created in Chapter 1. Because we’re doing this on a free account, we’re going to leverage this account for starter workflow hosting. Some names in GitHub have special meanings and GitHub treats them differently from other repositories. The .github repository is one of those and when this is found, GitHub will search for a particular directory called workflow-templates. Inside here is where we will host our reusable workflows as templates to be picked up and shown on the quick starter action page:

  1. Let’s create the starter workflow, which will use a reusable workflow we created in the previous chapter. To start this process, let’s create a file in this directory in the repository named our-node-build-workflow.yml:
    name: Node.js CI workflow
    on:
      workflow_dispatch:
      push:
        branches: [ $default-branch ]
     &...