GitHub Action Hero: Shohei Ueda
We spoke with our latest GitHub Action Hero, Shohei Ueda, about the story behind Hugo setup, mdbook Action, and a few other projects.
With GitHub Actions, you’re able to automate more of your workflow by connecting the tools you know and love—giving you more freedom to spend time innovating. You can deploy to any cloud, build containers, automate a message that welcomes new users to your open source projects, and so much more.
Over the next few weeks, we’re sharing stories from the earliest GitHub Actions adopters to help inspire you. This week, we interviewed Shohei Ueda (@peaceiris), the creator of Hugo setup, mdbook Action, and many more Actions. Learn about their project, challenges, and the lessons they’ve learned.
Tell us a little about yourself—how did you get started in software tools?
I’m a computer science major student in Japan, and two years have passed since I started using GitHub. These days, I’m into Static Site Generators, especially Hugo (Fast SSG is written in Golang). My interest in software began when I first set up my blog. I learned about static site generators, and in particular, I found Hugo really appealing. I’ve since realized that GitHub Pages is useful for publishing my blog, which is when I started using GitHub. Now, through my experiences on GitHub and with the community, I’m passionate about open-source software.
Why did you build your GitHub Action?
When GitHub Actions was in beta, I was able to be one of the first beta users. I wanted to automate building and publishing a static site to GitHub Pages using GitHub Actions. To implement that idea on GitHub Actions, I needed to set up Hugo, build a site, create a commit, and push it to a GitHub Pages branch. At that time, no public actions existed for my use case, so I created the Hugo build action and GitHub Pages deploy action. GitHub Actions beta v1 only supported a Docker action, so those two actions were originally Docker actions. Today, the Hugo setup action has migrated to a TypeScript action and the GitHub Pages deploy action is scheduled to be re-implemented in TypeScript, as well. It was a proper decision that separated the two actions, which meant that we can combine the GitHub Pages action with other static site generators.
Do you have future plans for your Actions?
Today, the GitHub Pages action is a Docker action, but I plan on re-implementing it as a TypeScript action. The rest of my GitHub Actions need more tests to raise the quality.
What’s your favorite feature of GitHub Actions?
Action sharing and matrix building are remarkable features of GitHub Actions. With sharing actions, our YAML workflow can be simplified and we can follow best practices easier. The matrix building is also a superior feature for multi-platform testing your public GitHub Actions.
What are the biggest challenges you’ve come across while building your GitHub Action?
The Hugo action was originally published as a Docker action and was migrated to a JavaScript action, before finally being turned into a TypeScript action. At first, I had a problem when creating a new release for each new Hugo version. Hugo has developed actively and a lot of releases are frequently published. This bothered me, but a JavaScript (TypeScript) action resolved it. By implementing our actions with JavaScript or TypeScript, we can run them immediately, but a Docker action needs a building step before being run and it needs to follow a large Node.js ecosystem. Although I didn’t have experience with Node projects, and I was just learning JavaScript and TypeScript, it wasn’t difficult and I was able to write my action easily. JavaScript and TypeScript actions are available on Ubuntu, macOS, and Windows virtual environments, and the actions/toolkit is useful to run your action on many platforms. TypeScript also provides a strict type system that helps our implementation. For these reasons, I strongly recommend anyone to create their Actions using TypeScript.
What do you want everyone to take away from your project(s)?
Please don’t hesitate to share your actions and knowledge. You may not know it, but your learnings will help others all over the world, no matter the length or complexity of your script—that’s the most important point of open source software. Improve your project and software by using GitHub Actions, and thank you for learning more about my work.
We hope you enjoyed our interview with Shohei Ueda. Check back soon—we’ll be adding new interviews every week. If you’re interested in building your own GitHub Actions, get started with the Learning Lab course. You can also find Hugo setup—and hundreds of other GitHub Actions—from GitHub Marketplace.
Don’t forget! The GitHub Hackathon is running now through March 31. Submit your best Actions for some exclusive Actions swag.
Learn more about Github Actions
Tags:
Written by
Related posts
Introducing Annotated Logger: A Python package to aid in adding metadata to logs
We’re open sourcing Annotated Logger, a Python package that helps make logs searchable with consistent metadata.
Boost your CLI skills with GitHub Copilot
Want to know how to take your terminal skills to the next level? Whether you’re starting out, or looking for more advanced commands, GitHub Copilot can help us explain and suggest the commands we are looking for.
Beginner’s guide to GitHub: Setting up and securing your profile
As part of the GitHub for Beginners guide, learn how to improve the security of your profile and create a profile README. This will let you give your GitHub account a little more personality.