Den Delimarsky

I am an engineer working on API documentation, security and machine learning.

github twitter linkedin rss

Updating GitHub Actions workflows

Aug 18, 2019
2 minutes read

I’ve been a big fan of GitHub Actions since last year’s Universe (read the post on building docs with them). As a matter of fact, I was such a fan that I moved my blog publishing process entirely to GitHub Actions and GitHub Pages. Recently, GitHub announced that the Actions engine is changing, which makes workflow management much easier - still in private beta, though.

Recently I got an invite to try out the new functionality, though, so I thought I’d write up how I updated the blog publishing workflow to the new experience!

Invite to GitHub Actions

Making the change

The first step is going to the repository that already has GitHub actions provisioned. Navigating to the Actions tab no longer shows the V1 workflows (they still work, by the way) and instead give you options to create new workflows. We’ll do just that - we’ll no longer rely on HCL-formatted definitions and instead use YAML (see documentation for more details).

Now, this might be a bit scary because it might seem like everything needs to be started from scratch. The folks at GitHub, however, have thought this through and have created a migration path. To get started, we need to download the migration scripts.

Running the modification script for GitHub Actions

Once the script completes and the changes are checked in, all I needed to do is create a pull request to master:

Pull request for new GitHub Actions

When the PR is merged, the Actions tab will contain the list of executions in the new format:

View of all GitHub Actions executions in a repository

From now on, every valid commit will perform a GitHub Actions execution through the new workflow. All-in-all, it took me less than 5 minutes to make the transition. Talk about efficiency!

There is one thing that I also had to eliminate - I no longer need to check the branch in my script. This is now controlled with the workflow YAML:

on: push
name: Blog deployment
branches:
- master

Thoughts on the above? Ping me on Twitter!


Back to posts