DEV Community

Lucas Hoz
Lucas Hoz

Posted on • Originally published at Medium

GitHub Actions - Process Automation

An introduction to process automation using GitHub Actions

Article in spanish

Official GitHub Actions logo composed of five interconnected circles.

GitHub Actions logo

Introduction

In the world of software development, automation has become a crucial element for code efficiency and quality. GitHub Actions emerged with the goal of fulfilling this task.

In this article, we will explore how GitHub Actions create the necessary workflows to tackle the challenging task of automating processes.

Table of contents

  • What are GitHub Actions?
  • What is a Workflow?
  • Creating your first Workflow
  • Customization and advanced configuration
  • Integration with external platforms
  • Benefits and use cases
  • Conclusions
  • Related resources

What are GitHub Actions?

GitHub Actions is a set of tools, referred to as "Actions", integrated into GitHub. These actions enable the automation of common processes, such as running tests, compiling code, and deploying applications from GitHub. Turning GitHub Actions into a fundamental service for streamlining and improving software quality.

What is a Workflow?

A workflow in GitHub Actions is a series of automated jobs that run in response to specific events in the associated repository. These events can include actions like code commits, opening pull requests, or even publishing new releases. Workflows allow organizing and coordinating the actions of GitHub Actions involved to achieve the desired goal.

Creating your first Workflow

Creating a workflow in GitHub Actions does not require extensive knowledge. You can start with a workflow that runs tests every time a code commit is pushed to the main branch of the repository. Create a file named .github/workflows/build-and-test.yml and define its properties.

A file with a .yml extension (YAML), created within the .github/workflows directory, defines a workflow for GitHub Actions. In it, the actions to be executed, the triggering events, and how it will interact with the repository are established

name: Build and Test

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Set up NodeJS
      uses: actions/setup-node@v4
      with:
        node-version: '20'

    - name: Install dependencies
      run: npm ci

    - name: Run tests
      run: npm run test
Enter fullscreen mode Exit fullscreen mode

Example of .github/workflows/build-and-test.yml file

Customization and advanced configuration

GitHub Actions allows advanced customization of workflows. You can define matrices to run actions in different environments, configure environment variables, and use community actions to integrate specific tools. This provides granular control over how actions are executed and adapts to the specific needs of the project.

Integration with external platforms

One of the highlighted features of GitHub Actions is its ability to integrate with other platforms and services. You can use predefined actions to deploy to cloud services, like: AWS, Azure, or Google Cloud. Additionally, the GitHub Actions API allows integration with custom tools and services.

Benefits and use cases

Automation with GitHub Actions brings numerous benefits to software development. It accelerates continuous delivery (CD), improves code quality by automatically running tests, and facilitates deployment in various environments. Common use cases include building and deploying web applications, running integration tests, and notifying changes in external services.

A practical example would be checking pull requests through a workflow triggered for each pull request.

Execution of a workflow from a GitHub Action, checking a pull request. Four successful jobs can be observed: check title, get committed files, check committed files, and finally, check committed file.

Example of a workflow that checks a pull request

Conclusions

GitHub Actions has proven to be a valuable tool for automation in software development. From simplifying routine tasks to facilitating complex workflows, GitHub Actions improves efficiency and quality in projects of all sizes. Integrating this tool can make a difference in the speed and reliability of your software deliveries.

Related resources

Top comments (0)