Michelle Duke
I'm a Content Producer working in tech & innovation. Known as the “Hackathon Queen” 👑 I'm on the GitHub DevRel team and love sharing stories from our amazing community of developers.
The GitHub community is capable of incredible things! GitHub Actions is just one of the amazing tools made available for developers. Actions is here to help you automate your workflows,…
The GitHub community is capable of incredible things! GitHub Actions is just one of the amazing tools made available for developers. Actions is here to help you automate your workflows, deploy to any cloud, build containers, and so much more!
Over the next few weeks, we’re sharing the stories from some of the earliest GitHub Actions adopters. Learn about their projects, challenges, and lessons learned.
Today, we speak with Jeremy Shore (@w9jds), the creator of GitHub Action for Firebase, to find out the story behind their GitHub Action.
Jeremy started his software career in the gaming industry. Like many developers, he simply loved what he was doing and used that passion to find a the job he enjoyed:
I’m a software engineer at PlayStation. I created a ton of tools in my free time for people that play Eve Online, as well as for Google Developer Groups, and personal use. I just really enjoy it and do it for fun.
The GitHub Action “Firebase” was built to help Jeremy with one of the problems he was facing. Jeremy hosts three firebase sites and over 25 other firebase cloud functions. Firebase gives you the power to simply push, build, and deploy to the repo without the need to host anything from your own laptop environment. Originally, the Action was created in order to check what functions had been updated and only deploy a function if it needed changing. During the GitHub Hackathon, Jeremy built on the Firebase Action:
I wanted to handle pushing updates to firebase/firestore after a build has completed to trigger cloud functions, pub-subs, and/or notifications to users that a new build has been deployed.
You can find this updated feature for the Firebase Action on Jeremy’s GitHub profile.
It’s a well known fact many developers love the tools GitHub provides. With almost 4000 Actions on the GitHub Marketplace, there’s something for everyone. Jeremy says he loves Actions for their flexibility and ability to do “just about anything”:
Since [Actions] runs entirely on docker, you can do just about anything you can imagine. It’s like playing with Lego and all the building blocks are provided but what you want to do is all up to you. With the additions of inputs, outputs, and even the toolkits it’s easier than ever. You no longer have to find plugins just to get something that you want to work.
I also love that it allows you to keep your build code inside of your project and just reference it, or just point to a repo that has the Action you want and go. Making sharing, staying up to date, and maintaining much easier.
One of the coolest things about GitHub Actions is just as Jeremy says; it’s all open sourced! Actions of the GitHub Marketplace are freely available to download, use, and contribute to. If there’s something you want that isn’t there, you can build on an existing Action, or create an entirely new one. It really is just like playing with Lego!
Like all good things, there are some challenges to think about when working with and using GitHub Actions. Jeremy says in particular, there are some additional challenges when you’re an early adopter. Often as an early adopter, they are the ones testing, using, and discovering the features. According to Jeremy, this can present an interesting (albeit fun) challenge when starting on something brand new:
Originally [pre-Actions announcement], the documentation was lacking. It definitely got a lot easier [after the announcements]. At first it wasn’t exactly clear how the build process handled dependencies, like what steps were required. There were issues where you would create a branch in your job, but if one branch broke then all of them did even though it depended on the previous step that succeeded. You were also limited to what you could do, as inputs and outputs weren’t available, so all I could do was set environment variables. Now that things like the toolkits are available everything has gotten much nicer to use. There are even repos with getting started projects you can build on top of, and let’s not forget we can now build Actions with Node instead of just Docker.
After the global release of GitHub Actions, more people are using and creating Actions. Documentation is very thorough, and it’s much easier to get started with and contribute to GitHub Actions. As Jeremy mentions, developers are now also able to create Actions in node as well as Docker.
Working on new development tools can be very exciting. Jeremy says however, that while people may be keen to just jump in and go, it’s also important to remember to have patience:
A lot of patience is needed for any kind of CI/CD, and this was a reminder. At the beginning, I wanted to do so many things, but there were limits which just caused frustration and things to not work. Figuring out how it worked backward at the beginning helped but branching was still limited. After that, nice things came out like the ability to save and re-pull artifacts to make stages much easier and handling good branching. With the way actions are built, the possibilities really are endless.
The possibilities certainly are endless! As a developer, you have the tools to build what you want for whatever you want. GitHub Actions puts the power in your hands. So, what will you create?
We hope you enjoyed our interview with Jeremy Shore. Keep an eye out for the next awesome Actions feature!
If you’re interested in building your own GitHub Action, get started with the Learning Lab course. You can also find GitHub Action for Firebase, and hundreds of other GitHub Actions on the GitHub Marketplace.
Check out our recent GitHub Hackathon for inspiration, featured Actions, and more upcoming hackathons.
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.
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.
As part of the GitHub for Beginners guide, learn how to merge pull requests. This will enable you to resolve conflicts when they arise.