fix: handle Hugo 0.139.5 archive fallback (#696)

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
Shohei Ueda
2026-05-11 01:05:09 +09:00
committed by GitHub
co-authored by Codex
parent c2f9fa4376
commit 4e5bf412f0
3 changed files with 35 additions and 5 deletions
+14 -3
View File
@@ -4,6 +4,8 @@ export default function getURL(
extended: string,
version: string
): string[] {
const downloadVersion = getDownloadVersion(version);
const extendedStr = (extended: string): string => {
if (extended === 'true') {
return 'extended_';
@@ -28,12 +30,12 @@ export default function getURL(
};
const baseURL = 'https://github.com/gohugoio/hugo/releases/download';
const assetBase = `hugo_${extendedStr(extended)}${version}_`;
const legacyVersionedAssetBase = `hugo_${extendedStr(extended)}v${version}_`;
const assetBase = `hugo_${extendedStr(extended)}${downloadVersion}_`;
const legacyVersionedAssetBase = `hugo_${extendedStr(extended)}v${downloadVersion}_`;
const assetBases = [assetBase, legacyVersionedAssetBase];
const assetURLs = (assetNames: string[]): string[] => {
return Array.from(new Set(assetNames)).map(assetName => {
return `${baseURL}/v${version}/${assetName}`;
return `${baseURL}/v${downloadVersion}/${assetName}`;
});
};
@@ -82,3 +84,12 @@ export default function getURL(
return assetURLs([`${assetBase}${os}-${arch}.tar.gz`]);
}
export function getDownloadVersion(version: string): string {
if (version === '0.139.5') {
// v0.139.5 has no release archives; Hugo publishes the same archives under v0.139.4.
return '0.139.4';
}
return version;
}
+7 -1
View File
@@ -5,7 +5,7 @@ import * as exec from '@actions/exec';
import {getConventions} from './get-conventions';
import getOS from './get-os';
import getArch from './get-arch';
import getURL from './get-url';
import getURL, {getDownloadVersion} from './get-url';
import * as path from 'path';
import {Tool, Action} from './constants';
@@ -123,6 +123,12 @@ export async function installer(version: string): Promise<void> {
core.debug(`Processor Architecture: ${archName}`);
const toolURLs: string[] = getURL(osName, archName, extended, version);
const downloadVersion = getDownloadVersion(version);
if (downloadVersion !== version) {
core.info(
`Hugo ${version} release does not publish archives; downloading v${downloadVersion} archives instead.`
);
}
const workDir = await createWorkDir();
const binDir = await createBinDir(workDir);