<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Staging on Chris Liatas</title><link>https://liatas.com/tags/staging/</link><description>Recent content in Staging on Chris Liatas</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 03 Jun 2026 06:00:00 +0300</lastBuildDate><atom:link href="https://liatas.com/tags/staging/index.xml" rel="self" type="application/rss+xml"/><item><title>Keyless Hugo staging: GitLab OIDC + Firebase preview channels</title><link>https://liatas.com/posts/hugo-firebase-preview-channels-gitlab-oidc/</link><pubDate>Wed, 03 Jun 2026 06:00:00 +0300</pubDate><guid>https://liatas.com/posts/hugo-firebase-preview-channels-gitlab-oidc/</guid><description>&lt;div class="headerclaim"&gt;This builds directly on &lt;strong&gt;&lt;a href="https://liatas.com/posts/hugo-ci-cd"&gt;Continuous Deployment for Hugo websites&lt;/a&gt;&lt;/strong&gt; — the keyless GitLab OIDC + Workload Identity Federation setup. Read that first; here we add a staging preview on a separate branch.&lt;/div&gt;

&lt;p&gt;The &lt;a href="https://liatas.com/posts/hugo-ci-cd"&gt;keyless deploy post&lt;/a&gt; gets &lt;code&gt;main&lt;/code&gt; → live Firebase Hosting with no stored secrets. The missing half is &lt;strong&gt;staging&lt;/strong&gt;: previewing every change at a shareable URL &lt;em&gt;before&lt;/em&gt; it goes live. Firebase Hosting &lt;a href="https://firebase.google.com/docs/hosting/test-preview-deploy"&gt;preview channels&lt;/a&gt; do exactly that — ephemeral, auto-expiring copies of your site, isolated from the live channel — and we can drive them from a &lt;code&gt;dev&lt;/code&gt; branch using the &lt;strong&gt;same&lt;/strong&gt; Workload Identity Federation (WIF), at no extra cost and with no new infrastructure.&lt;/p&gt;</description></item></channel></rss>