<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Github on Maceage's Blog</title><link>https://blog.maceage.com/tags/github/</link><description>Recent content in Github on Maceage's Blog</description><generator>Hugo</generator><language>en-au</language><copyright>© Graham Mace</copyright><lastBuildDate>Sun, 06 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.maceage.com/tags/github/index.xml" rel="self" type="application/rss+xml"/><item><title>Automated Unreal Engine Build Server on AWS Part 3: Build</title><link>https://blog.maceage.com/posts/2026/automated-unreal-engine-build-server-on-aws-3/</link><pubDate>Sun, 06 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.maceage.com/posts/2026/automated-unreal-engine-build-server-on-aws-3/</guid><description>&lt;p&gt;This is the final part of the series, continuing from creating a &lt;a href="https://blog.maceage.com/posts/2026/automated-unreal-engine-build-server-on-aws-1/"&gt;GitHub self-hosted runner base AMI&lt;/a&gt; and &lt;a href="https://blog.maceage.com/posts/2026/automated-unreal-engine-build-server-on-aws-2/"&gt;creating an AMI with a specific version of Unreal Engine&lt;/a&gt;. Everything now comes together: a published GitHub Release triggers a Spot Instance, which registers itself as a self-hosted runner, builds the project, uploads artefacts to S3, and tears itself down.&lt;/p&gt;&#10;&lt;p&gt;As always, the full code lives at: &lt;a href="https://github.com/sawnoff-studios/unreal-build-server-image" target="_blank"&gt;sawnoff-studios/unreal-build-server-image&lt;/a&gt;&lt;/p&gt;&#10;&lt;h1 id="contents"&gt;Contents&lt;/h1&gt;&#10;&lt;p&gt;This post covers how to use an EC2 Spot Instance GitHub Actions self-hosted runner:&lt;/p&gt;</description></item><item><title>Automated Unreal Engine Build Server on AWS Part 2: Unreal AMI</title><link>https://blog.maceage.com/posts/2026/automated-unreal-engine-build-server-on-aws-2/</link><pubDate>Fri, 04 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.maceage.com/posts/2026/automated-unreal-engine-build-server-on-aws-2/</guid><description>&lt;p&gt;This post continues from &lt;a href="https://blog.maceage.com/posts/2026/automated-unreal-engine-build-server-on-aws-1/"&gt;Part 1&lt;/a&gt;, where I created a base AMI with build tools installed. Now I&amp;rsquo;ll cover two critical pieces:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;A Lambda function&lt;/strong&gt; that automatically retrieves GitHub runner tokens (solving the token expiry problem)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;An AMI with a specific Unreal Engine version&lt;/strong&gt; installed, ready for GitHub Actions builds&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The complete code repository is available at: &lt;a href="https://github.com/sawnoff-studios/unreal-build-server-image" target="_blank"&gt;sawnoff-studios/unreal-build-server-image&lt;/a&gt;&lt;/p&gt;&#10;&lt;h1 id="contents"&gt;Contents&lt;/h1&gt;&#10;&lt;p&gt;This post covers the Lambda used for retrieving self-hosted runner tokens from GitHub, as well as using the base AMI to install a specific version of Unreal Engine for building projects&lt;/p&gt;</description></item><item><title>Automated Unreal Engine Build Server on AWS Part 1: Base AMI</title><link>https://blog.maceage.com/posts/2026/automated-unreal-engine-build-server-on-aws-1/</link><pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.maceage.com/posts/2026/automated-unreal-engine-build-server-on-aws-1/</guid><description>&lt;p&gt;After completing my &lt;a href="https://blog.maceage.com/posts/2025/completing-my-unreal-engine-course/"&gt;CG Spectrum Unreal Engine course&lt;/a&gt;, I wanted to automate the build and release process for my &lt;a href="https://blog.maceage.com/posts/2026/graveyard-gunner/"&gt;game prototype&lt;/a&gt;. While building locally, zipping artefacts, and uploading somewhere would have worked, I aimed for something more robust: trigger a GitHub release that automatically provisions a Spot Instance, builds the project, and uploads results to S3.&lt;/p&gt;&#10;&lt;h3 id="the-problem"&gt;The Problem&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/sawnoff-studios/unreal-build-server" target="_blank"&gt;My initial approach&lt;/a&gt; involved manually configuring an EC2 instance, installing dependencies by hand, and registering a GitHub self-hosted runner. I created an AMI from that instance and configured GitHub Actions to use it.&lt;/p&gt;</description></item><item><title>Backing up GitHub repositories</title><link>https://blog.maceage.com/posts/2026/backing-up-github-repositories/</link><pubDate>Thu, 20 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.maceage.com/posts/2026/backing-up-github-repositories/</guid><description>&lt;p&gt;After a litany of &lt;a href="https://www.itnews.com.au/news/github-sees-hours-long-outage-628222" target="_blank"&gt;outages on GitHub&lt;/a&gt;, horror stories of &lt;a href="https://www.thewordcracker.com/en-us/google-blogger-mass-suspension/" target="_blank"&gt;people losing their Blogger blogs&lt;/a&gt;, broadcasters &lt;a href="https://www.tomshardware.com/software/cloud-storage/nine-pbs-loses-access-to-70-years-of-data-after-contracted-cloud-storage-vendor-goes-defunct-public-tv-channel-sues-iron-mountain-data-center-which-hosts-archival-materials-to-ensure-preservation" target="_blank"&gt;losing years of data in cloud storage&lt;/a&gt; and &lt;a href="https://jackyan.com/blog/2026/04/family-loses-all-their-accounts-on-google/" target="_blank"&gt;Google account suspensions&lt;/a&gt;, I suddenly realised I had no offline backups of my GitHub repositories.&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;d heard of &lt;a href="https://allendowney.blogspot.com/2018/09/this-blog-has-moved.html" target="_blank"&gt;this kind of thing happening to blogs&lt;/a&gt;, but I didn&amp;rsquo;t expect it to &lt;a href="https://galratner.substack.com/p/github-90-percent-of-the-time-its" target="_blank"&gt;happen to GitHub&lt;/a&gt; so soon. And with AI agents known for &lt;a href="https://www.theguardian.com/technology/2026/apr/29/claude-ai-deletes-firm-database" target="_blank"&gt;deleting&lt;/a&gt; &lt;a href="https://www.androidheadlines.com/2026/09/claude-code-ai-agent-deletes-48000-files-in-103-seconds.html" target="_blank"&gt;random&lt;/a&gt; &lt;a href="https://www.digitaltrends.com/computing/a-tv-shows-entire-season-was-reportedly-erased-by-an-ai-agent-just-weeks-before-it-was-set-to-premiere/" target="_blank"&gt;shit&lt;/a&gt;, I decided it was time to find a solution that could reliably back up my repositories.&lt;/p&gt;</description></item></channel></rss>