Book Image

Automating Workflows with GitHub Actions

By : Priscila Heller
Book Image

Automating Workflows with GitHub Actions

By: Priscila Heller

Overview of this book

GitHub Actions is one of the most popular products that enables you to automate development tasks and improve your software development workflow. Automating Workflows with GitHub Actions uses real-world examples to help you automate everyday tasks and use your resources efficiently. This book takes a practical approach to helping you develop the skills needed to create complex YAML files to automate your daily tasks. You'll learn how to find and use existing workflows, allowing you to get started with GitHub Actions right away. Moving on, you'll discover complex concepts and practices such as self-hosted runners and writing workflow files that leverage other platforms such as Docker as well as programming languages such as Java and JavaScript. As you advance, you'll be able to write your own JavaScript, Docker, and composite run steps actions, and publish them in GitHub Marketplace! You'll also find instructions to migrate your existing CI/CD workflows into GitHub Actions from platforms like Travis CI and GitLab. Finally, you'll explore tools that'll help you stay informed of additions to GitHub Actions along with finding technical support and staying engaged with the community. By the end of this GitHub book, you'll have developed the skills and experience needed to build and maintain your own CI/CD pipeline using GitHub Actions.
Table of Contents (14 chapters)
1
Section 1:Introduction and Overview of Technologies Used with GitHub Actions
4
Section 2: Advanced Concepts and Hands-On Exercises to Create Actions
9
Section 3: Customizing Existing Actions, Migrations, and the Future of GitHub Actions

Using exit codes

Adding exit codes to your action can help you monitor the action's check run status.

GitHub displays statuses to illustrate whether an action run succeeded or failed. Those statuses are binary and simply represent whether an action run succeeded or failed, and are outlined further here:

  1. The action completed successfully—Exit status is 0 and the check run status is success.
  2. The action failed—Exit status is non-zero (any integer) and the check run status is failed. All concurrent actions are cancelled, and future actions are skipped.

Adding exit codes to a JavaScript action

Use the @actions/core actions toolkit package to set failure exit codes and log a message, as follows:

try {
  // add thing to be tried here
} catch (error) {
  core.setFailed(error.message);
}

Adding exit codes to a Docker container action

Use your entrypoint.sh file to add a failure exit code, as follows:

if <this happens...