[{"categories":null,"content":"I\u0026amp;rsquo;ve been running my own SaaS side project - an Intune assessment tool I\u0026amp;rsquo;ve been building out solo - on entirely manual deployments for a while. func azure functionapp publish from my own machine, a hand-built zip for the Portal, dotnet run against the migration runner when the schema changes. It works, but it\u0026amp;rsquo;s one person\u0026amp;rsquo;s muscle memory standing between \u0026amp;ldquo;push to main\u0026amp;rdquo; and \u0026amp;ldquo;actually running.\u0026amp;rdquo; Today I finally wired up proper CI/CD: GitHub Actions …","date":"2026-07-19","summary":"Federated credentials to Azure are supposed to be the easy, secure way to do CI/CD. They are — right up until the subject claim doesn\u0026rsquo;t match any documentation, and az role assignment create …","tags":["azure","github-actions","ci-cd","entra-id","oidc","powershell"],"title":"Wiring Up GitHub Actions OIDC to Azure: Two Bugs No Guide Mentions","url":"https://clefsoft.co.uk/posts/github-actions-oidc-azure-hidden-bugs/"},{"categories":null,"content":"RealmJoin has a nice feature: a proper full-screen \u0026amp;ldquo;setting up your device\u0026amp;rdquo; experience after Autopilot hands off, showing real app install progress instead of leaving the user staring at a blank desktop wondering if anything\u0026amp;rsquo;s happening. I don\u0026amp;rsquo;t run RealmJoin at most of my clients. So I built my own version.\nThis post isn\u0026amp;rsquo;t a tutorial - it\u0026amp;rsquo;s the debugging story. Most of what took real time wasn\u0026amp;rsquo;t the WPF app itself. It was a string of things that only …","date":"2026-07-11","summary":"I built a RealmJoin-style provisioning screen for Autopilot devices from scratch. Here\u0026rsquo;s what actually broke, and why almost none of it showed up until I tested on a real machine.","tags":["Intune","Autopilot","Azure Functions","PowerShell","WPF"],"title":"Building an Autopilot Provisioning Screen: The Bugs You Only Find on a Real Device","url":"https://clefsoft.co.uk/posts/provisioningui-provisioning-screen/"},{"categories":null,"content":"I hit this on the very first deploy of this site, so if you\u0026amp;rsquo;ve just wired a Hugo repo up to Azure Static Web Apps and the GitHub Actions run went red, you\u0026amp;rsquo;re probably looking at the same thing I was.\nThe error The workflow that Azure generates for you fails during the Oryx build step with this:\ncode Copy Detected following platforms: hugo: 0.152.2 /opt/hugo/0.152.2/hugo: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33\u0026amp;#39; not found (required by /opt/hugo/0.152.2/hugo) …","date":"2026-07-08","summary":"Oryx\u0026rsquo;s build container is too old for the Hugo version it downloads. The fix: build Hugo on the GitHub runner yourself and tell Azure to just upload the output.","tags":["azure","static-web-apps","hugo","github-actions","ci-cd"],"title":"Fixing Azure Static Web Apps Hugo builds failing with GLIBC errors","url":"https://clefsoft.co.uk/posts/azure-swa-hugo-glibc-fix/"}]