Tutorial on Automating Workflows Using GitHub Actions

Summary posted by: Reshama Shaikh

Introduction

In January 2022, Gonzalo Peña-Castellanos, presented to the Data Umbrella community a comprehensive tutorial on Automating Workflows with GitHub Actions.

Below in the outline is a summary of topics that were covered. Learn about GitHub Actions and how they can accelerate your application development workflows. A workflow is a configurable automated process made up of one or more jobs. We will learn how to configure and use workflows existing current actions and start looking at how an action can be developed from scratch.

Outline of Tutorial

  • PART 1: GitHub, Workflows and GitHub Actions
  • PART 2: Actions components
  • PART 3: GitHub Actions marketplace
  • PART 4: Workflow syntax
  • PART 5: Creating a Workflow
  • PART 6: Creating a custom action

Video

Resources

References

Section Timestamps of Video

Intro

PART 1: GitHub, Workflows and GitHub Actions

  • 00:07:55 —PART 1: GitHub, Workflows and GitHub Actions
  • 00:11:00 GitHub Development Workflow with “events” Can trigger “events” or “actions” based on these events: issue opened, PR submitted, comment on issue or PR is merged, closed or updated
  • 00:11:55 Continuous integration and continuous development (CI/CD)
  • 00:12:05 (“webhook” mentioned), cross-platform testing is done by CI/CD
  • 00:13:55 Microsoft and how GitHub Actions started; GH actions is a nice wrapper around Azure pipelines
  • 00:15:07 What are GitHub Actions? A platform to “automate development workflows”
  • 00:15:22 Mariatta’s talk on CI/CD
  • 00:16:00 What are developer workflows? CI/CD does not mean GitHub actions. It is one of many workflows you can automate, but it is not the only one.
  • 00:16:13 Types of developer workflows

PART 2: GitHub Action Components

PART 3: Workflow Syntax

PART 4: GitHub Actions Marketplace

  • 00:37:06 —PART 4: GitHub Actions Marketplace
  • 00:37:06 Q&A: Can we use on MacOS and Windows?
  • 00:38:03 Q&A: Meaning of “17” in cron?
  • 00:40:22 Cron job in GitHub actions without need for Heroku?
  • 00:41:00 GitHub Workflow Rates (pricing)
  • 00:42:26 Q&A: Why is MacOS more expensive than others for GitHub pricing?
  • 00:43:39 Q&A: Can jobs be run in parallel?
  • 00:47:40 Q&A: Where to go for support for GitHub Actions?
  • 00:49:48 —PART 4: GitHub Actions Marketplace
  • 00:55:10 GH Actions: data science, conda
  • 00:58:52 stale issue labeler

PART 5: Creating a Workflow: live examples

  • 01:01:05 —PART 5: Creating a Workflow: live examples
  • 01:01:28 Migrating from other services (Azure Pipelines, CircleCI, GitLab CI/CD, Jenkins, Travis CI)
  • 01:02:03 Starter Workflows!
  • 01:02:20 starter workflows
  • 01:02:35 Example: Create a new repository and start! First issue
  • 01:08:00 Example: Suggested GH action for the repo: “Simple Workflow”

PART 6: Creating a Custom GitHub Action

About the Speaker

Bio

Gonzalo is a Colombian Civil Engineer with an MSc. in Hydroinformatics and an MSc. in Sanitary Engineering that discovered a passion for Software Development and Data Science which led him to collaborate in different open source projects and to eventually join Anaconda, Inc (formerly known as Continuum Analytics) and currently Quansight, Inc as Senior Software Engineer, and Data Scientist (in development).

He is an active member of the open source community contributing to different projects and a leader in the Python Colombia Community helping shape and organize communities such as Django Girls Colombia, Python Bucaramanga, Python Colombia and the national and Latin American Python Conferences, PyCon Colombia (2018, 2019, 2020) and SciPy Latam (2019, 2021) respectively.

Gonzalo is currently a core developer with Project Jupyter and Project napari. He is the author of the setup-miniconda Github Action to help automate conda environment and workflows.

Connect with the Speaker, Gonzalo Peña-Castellanos