diff --git a/.github/workflows/test-action.yml b/.github/workflows/test-action.yml index 7ca1b43..0b7abca 100644 --- a/.github/workflows/test-action.yml +++ b/.github/workflows/test-action.yml @@ -21,6 +21,9 @@ jobs: extended: - true - false + withdeploy: + - true + - false steps: - uses: actions/checkout@v4 @@ -29,6 +32,7 @@ jobs: with: hugo-version: ${{ matrix.hugo-version }} extended: ${{ matrix.extended }} + withdeploy: ${{ matrix.withdeploy }} - name: Run hugo version run: echo "::set-output name=hugo_version::$(hugo version)" diff --git a/README.md b/README.md index 9a7750e..f163d90 100644 --- a/README.md +++ b/README.md @@ -123,10 +123,23 @@ Set `extended: true` to use a Hugo extended version. - name: Setup Hugo uses: peaceiris/actions-hugo@v3 with: - hugo-version: '0.119.0' + hugo-version: '0.137.0' extended: true ``` +### ⭐️ Use Hugo withdeploy + +Set `withdeploy: true` to use a Hugo with deploy feature. +Since [v0.137.0](https://github.com/gohugoio/hugo/releases/tag/v0.137.0), the deploy feature is not in the default archive anymore. + +```yaml +- name: Setup Hugo + uses: peaceiris/actions-hugo@v3 + with: + hugo-version: '0.137.0' + withdeploy: true +``` + ### ⭐️ Use the latest version of Hugo Set `hugo-version: 'latest'` to use the latest version of Hugo. diff --git a/action.yml b/action.yml index 8dcf0cb..c0bb285 100644 --- a/action.yml +++ b/action.yml @@ -1,5 +1,5 @@ name: 'Hugo setup' -description: 'GitHub Actions for Hugo ⚡️ Setup Hugo quickly and build your site fast. Hugo extended and Hugo Modules are supported.' +description: 'GitHub Actions for Hugo ⚡️ Setup Hugo quickly and build your site fast. Hugo extended, Hugo deploy and Hugo Modules are supported.' author: 'peaceiris' inputs: hugo-version: @@ -10,6 +10,10 @@ inputs: description: 'Download (if necessary) and use Hugo extended version. Example: true' required: false default: 'false' + withdeploy: + description: 'Download (if necessary) and use Hugo deploy feature. Example: true' + required: false + default: 'false' runs: using: 'node20' main: 'lib/index.js' diff --git a/package.json b/package.json index e9ea025..2de6f69 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "actions-hugo", - "version": "3.0.0", + "version": "3.0.1", "description": "GitHub Actions for Hugo", "main": "lib/index.js", "engines": { diff --git a/src/get-url.ts b/src/get-url.ts index 63f580c..b150f49 100644 --- a/src/get-url.ts +++ b/src/get-url.ts @@ -1,30 +1,30 @@ export default function getURL( - os: string, - arch: string, - extended: string, - version: string + system: { + os: string, + arch: string, + }, + options: { + extended: string, + withdeploy: string, + version: string + } ): string { - const extendedStr = (extended: string): string => { - if (extended === 'true') { - return 'extended_'; - } else { - return ''; - // } else { - // throw new Error(`Invalid input (extended): ${extended}`); - } - }; + let extendedStr = ''; + if (options.extended === 'true') { + extendedStr = 'extended_'; + } + let withdeployStr = ''; + if (options.withdeploy === 'true') { + withdeployStr = 'withdeploy_'; + } + let ext = 'tar.gz'; + if (system.os === 'Windows') { + ext = 'zip'; + } - const ext = (os: string): string => { - if (os === 'Windows') { - return 'zip'; - } else { - return 'tar.gz'; - } - }; - - const hugoName = `hugo_${extendedStr(extended)}${version}_${os}-${arch}`; + const hugoName = `hugo_${extendedStr}${withdeployStr}${options.version}_${system.os}-${system.arch}`; const baseURL = 'https://github.com/gohugoio/hugo/releases/download'; - const url = `${baseURL}/v${version}/${hugoName}.${ext(os)}`; + const url = `${baseURL}/v${options.version}/${hugoName}.${ext}`; return url; } diff --git a/src/installer.ts b/src/installer.ts index e3dfd35..fe761ad 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -47,13 +47,19 @@ export async function installer(version: string): Promise { const extended: string = core.getInput('extended'); core.debug(`Hugo extended: ${extended}`); + const withdeploy: string = core.getInput('withdeploy'); + core.debug(`Hugo withdeploy: ${withdeploy}`); + const osName: string = getOS(process.platform); core.debug(`Operating System: ${osName}`); const archName: string = getArch(process.arch); core.debug(`Processor Architecture: ${archName}`); - const toolURL: string = getURL(osName, archName, extended, version); + const system = { os: osName, arch: archName }; + const options = { extended: extended, withdeploy: withdeploy, version: version } + + const toolURL: string = getURL(system, options); core.debug(`toolURL: ${toolURL}`); const workDir = await createWorkDir();