From 268ecfd2e70cc05551c793b8922a3374f38acaf2 Mon Sep 17 00:00:00 2001 From: KernelPanic Date: Thu, 13 Aug 2026 00:11:03 -0400 Subject: [PATCH] fix: stop mike from writing symlinks into gh-pages, breaking Pages deploy GitHub's own automatic Pages build-and-deploy (triggered whenever gh-pages is pushed - a separate workflow from this repo's docs.yaml) started rejecting every deploy with "Artifact could not be deployed... content does not contain any hard links, symlinks". mike's default alias type ("symlink") is exactly that: the "latest" alias is a literal filesystem symlink committed into gh-pages, which actions/deploy-pages now refuses outright. --alias-type redirect switches it to mike's own supported alternative: a small HTML redirect page instead of a symlink, functionally identical for visitors. Verified against the installed mike CLI (mike deploy --help lists alias-type as one of symlink/copy/redirect, default symlink). Co-Authored-By: Claude Sonnet 5 --- build.gradle.kts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index cf9722cdb..5e008744e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -265,7 +265,13 @@ tasks { group = "publishing" val tag = rootProject.version.toString().substringBeforeLast(".") workingDir = rootDir - commandLine("mike", "deploy", "--push", "--update-aliases", tag, "latest") + // --alias-type redirect: mike's default ("symlink") writes the "latest" alias as an + // actual symlink into the gh-pages branch, which GitHub's own automatic Pages + // build-and-deploy (triggered whenever gh-pages is pushed, separate from this task) + // rejects outright ("content does not contain any hard links, symlinks"). "redirect" + // makes the alias a small HTML redirect page instead - no symlink, same effect for + // visitors. + commandLine("mike", "deploy", "--push", "--update-aliases", "--alias-type", "redirect", tag, "latest") } // modpublisher's changelog reads CHANGELOG.md straight off disk when a publish task runs - it // doesn't know about git tags or PRs. .github/workflows/release-notes.yaml (reactive, post-tag)