mirror of
https://github.com/peaceiris/actions-hugo.git
synced 2026-01-25 20:32:19 +01:00
Compare commits
51 Commits
v2.1.0
...
v2.0.0-rc1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
41299ad96e | ||
|
|
a54ee42598 | ||
|
|
f5910f8da5 | ||
|
|
184d0ede63 | ||
|
|
4b14375887 | ||
|
|
9c125996b3 | ||
|
|
0fe9de2e37 | ||
|
|
ebaa91f383 | ||
|
|
e34825e78a | ||
|
|
f789b5fc87 | ||
|
|
be1e41bed8 | ||
|
|
846f4fed60 | ||
|
|
baeba7a8a7 | ||
|
|
48daa44ee9 | ||
|
|
722aeff149 | ||
|
|
f43706a360 | ||
|
|
1450cb25b1 | ||
|
|
cdad2bd631 | ||
|
|
bb41c318fe | ||
|
|
23e859c6a8 | ||
|
|
50f614060a | ||
|
|
b836447fac | ||
|
|
053422e2e1 | ||
|
|
8b02a56ca6 | ||
|
|
c697c41ad2 | ||
|
|
457d23d414 | ||
|
|
e07f1d30e8 | ||
|
|
67efaf1f63 | ||
|
|
d44adaf4fe | ||
|
|
9e04da8578 | ||
|
|
349881b966 | ||
|
|
fddee393fc | ||
|
|
0606233eb3 | ||
|
|
1671d5c394 | ||
|
|
2f1bf01c45 | ||
|
|
d565469b6b | ||
|
|
ab39230346 | ||
|
|
6ebfcbd9d0 | ||
|
|
d0f7b9206e | ||
|
|
88accf1aa5 | ||
|
|
c2a052ead3 | ||
|
|
03bccf68b8 | ||
|
|
45bd07a5c0 | ||
|
|
9aa599a7fb | ||
|
|
843ac84fed | ||
|
|
42a06b08e9 | ||
|
|
e7a5cc7ef7 | ||
|
|
df70d77351 | ||
|
|
8ffc478ba7 | ||
|
|
2905a7fc5b | ||
|
|
fee1e1cc48 |
20
.github/workflows/test.yml
vendored
20
.github/workflows/test.yml
vendored
@@ -18,19 +18,19 @@ jobs:
|
||||
# - name: Test script
|
||||
# run: npm test
|
||||
|
||||
# - name: Build production
|
||||
# run: npm run build
|
||||
- name: Build production
|
||||
run: npm run build
|
||||
|
||||
|
||||
test-prod:
|
||||
runs-on: ubuntu-18.04
|
||||
needs: test
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
# hugo-version: ['latest']
|
||||
# extended: [true]
|
||||
hugo-version: ['latest', '0.58.2']
|
||||
extended: [true, false]
|
||||
hugo-version: [null]
|
||||
# hugo-version: [null, 'latest', '0.58.2']
|
||||
extended: [null]
|
||||
# extended: [null, true, false]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
@@ -40,3 +40,9 @@ jobs:
|
||||
with:
|
||||
hugo-version: ${{ matrix.hugo-version }}
|
||||
extended: ${{ matrix.extended }}
|
||||
|
||||
- name: Dump
|
||||
run: |
|
||||
hugo version
|
||||
go version
|
||||
git --version
|
||||
|
||||
18
README.md
18
README.md
@@ -1,7 +1,7 @@
|
||||
[](https://github.com/peaceiris/actions-hugo/blob/master/LICENSE)
|
||||
[](https://github.com/peaceiris/actions-hugo/releases/latest)
|
||||
[](https://github.com/peaceiris/actions-hugo/releases)
|
||||
[](https://github.com/peaceiris/actions-hugo/actions)
|
||||
[](https://github.com/peaceiris/actions-hugo/actions)
|
||||
|
||||
<img width="400" alt="GitHub Actions for Hugo" src="./images/ogp.svg">
|
||||
|
||||
@@ -11,17 +11,13 @@
|
||||
|
||||
- [gohugoio/hugo: The world’s fastest framework for building websites.](https://github.com/gohugoio/hugo)
|
||||
|
||||
We can run Hugo on a virtual machine of GitHub Actions by this Hugo action. Hugo extended version and Hugo Modules are supported.
|
||||
|
||||
From `v2.0.0`, this Hugo action migrated to a JavaScript action. We no longer build or pull a Hugo docker image. Thanks to this change, we can complete this action less than **2 sec**. (A docker base action was taking about 1 min or more execution time to build or pull.)
|
||||
|
||||
|
||||
|
||||
## Getting started
|
||||
|
||||
### Create your workflow
|
||||
### Create `.github/workflows/gh-pages.yml`
|
||||
|
||||
An example workflow `.github/workflows/gh-pages.yml` with [GitHub Actions for deploying to GitHub Pages with Static Site Generators]
|
||||
An example workflow with [GitHub Actions for deploying to GitHub Pages with Static Site Generators]
|
||||
|
||||
[GitHub Actions for deploying to GitHub Pages with Static Site Generators]: https://github.com/peaceiris/actions-gh-pages
|
||||
|
||||
@@ -64,7 +60,7 @@ jobs:
|
||||
|
||||
## Options
|
||||
|
||||
### Use Hugo extended
|
||||
### Hugo extended
|
||||
|
||||
```yaml
|
||||
- name: Setup Hugo
|
||||
@@ -74,7 +70,7 @@ jobs:
|
||||
extended: true
|
||||
```
|
||||
|
||||
### Use the latest version of Hugo
|
||||
### Latest version of Hugo
|
||||
|
||||
```yaml
|
||||
- name: Setup Hugo
|
||||
@@ -83,7 +79,9 @@ jobs:
|
||||
hugo-version: 'latest'
|
||||
```
|
||||
|
||||
This action fetches the latest version of Hugo by [hugo | Homebrew Formulae](https://formulae.brew.sh/formula/hugo)
|
||||
**Note**: This action gets a Hugo latest version by GitHub API. Please be aware of [GitHub API Rate limiting]
|
||||
|
||||
[GitHub API Rate limiting]: https://developer.github.com/v3/#rate-limiting
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name: 'Hugo setup action'
|
||||
name: 'Hugo build action'
|
||||
description: 'GitHub Actions for Hugo extended and Hugo Modules'
|
||||
author: 'peaceiris'
|
||||
inputs:
|
||||
@@ -13,6 +13,3 @@ inputs:
|
||||
runs:
|
||||
using: 'node12'
|
||||
main: 'index.js'
|
||||
branding:
|
||||
icon: 'package'
|
||||
color: 'yellow'
|
||||
|
||||
@@ -1,18 +1,22 @@
|
||||
const XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
|
||||
|
||||
function getLatestVersion() {
|
||||
return new Promise((resolve, reject) => {
|
||||
// return new Promise((resolve, reject) => {
|
||||
return new Promise(resolve => {
|
||||
const xhr = new XMLHttpRequest();
|
||||
const url = "https://formulae.brew.sh/api/formula/hugo.json";
|
||||
const url = "https://api.github.com/repos/gohugoio/hugo/releases/latest";
|
||||
xhr.open("GET", url);
|
||||
xhr.send();
|
||||
|
||||
xhr.onreadystatechange = function() {
|
||||
if (xhr.readyState === 4 && xhr.status === 200) {
|
||||
const result = JSON.parse(xhr.responseText);
|
||||
const latestVersion = result.versions.stable;
|
||||
const latestURL = result["assets"][0].browser_download_url;
|
||||
const latestVersion = latestURL.match(/(\d+).(\d+).(\d+)/g)[0];
|
||||
|
||||
resolve(latestVersion);
|
||||
} else if (xhr.readyState === 4 && xhr.status !== 200) {
|
||||
reject(`ERROR: got status ${xhr.status} of ${url}`);
|
||||
// } else {
|
||||
// reject(`ERROR: got status ${xhr.status}`);
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
81
index.js
81
index.js
@@ -1,54 +1,51 @@
|
||||
const core = require("@actions/core");
|
||||
const tc = require("@actions/tool-cache");
|
||||
const io = require("@actions/io");
|
||||
const exec = require("@actions/exec");
|
||||
const getLatestVersion = require("./get-latest-version");
|
||||
|
||||
// most @actions toolkit packages have async methods
|
||||
async function run() {
|
||||
try {
|
||||
getLatestVersion().then(
|
||||
async function(latestVersion) {
|
||||
let hugoVersion = core.getInput("hugo-version");
|
||||
if (!hugoVersion || hugoVersion === "latest") {
|
||||
hugoVersion = latestVersion;
|
||||
}
|
||||
console.log(`Hugo version: ${hugoVersion}`);
|
||||
|
||||
const extended = core.getInput("extended");
|
||||
console.log(`Hugo extended: ${extended}`);
|
||||
let extendedStr = "";
|
||||
if (extended === "true") {
|
||||
extendedStr = "extended_";
|
||||
}
|
||||
|
||||
console.log(`Operating System: ${process.platform}`);
|
||||
|
||||
const hugoName = `hugo_${extendedStr}${hugoVersion}_Linux-64bit`;
|
||||
core.debug(`hugoName: ${hugoName}`);
|
||||
|
||||
const hugoURL = `https://github.com/gohugoio/hugo/releases/download/v${hugoVersion}/${hugoName}.tar.gz`;
|
||||
core.debug(`hugoURL: ${hugoURL}`);
|
||||
|
||||
const hugoPath = `${process.env.HOME}/bin`;
|
||||
await io.mkdirP(hugoPath);
|
||||
core.addPath(hugoPath);
|
||||
|
||||
// Download and extract Hugo binary
|
||||
const hugoTarball = await tc.downloadTool(hugoURL);
|
||||
const hugoExtractedFolder = await tc.extractTar(hugoTarball, "/tmp");
|
||||
core.debug("hugoExtractedFolder:", hugoExtractedFolder);
|
||||
await io.mv(`${hugoExtractedFolder}/hugo`, hugoPath);
|
||||
|
||||
// Show version
|
||||
await exec.exec('hugo version');
|
||||
await exec.exec('go version');
|
||||
await exec.exec('git --version');
|
||||
},
|
||||
function(error) {
|
||||
core.setFailed(error);
|
||||
getLatestVersion().then(async function(latestVersion) {
|
||||
let hugoVersion = core.getInput("hugo-version");
|
||||
if (!hugoVersion || hugoVersion === "latest") {
|
||||
hugoVersion = latestVersion;
|
||||
}
|
||||
);
|
||||
core.debug(`Hugo version: ${hugoVersion}`);
|
||||
|
||||
let extended = core.getInput("extended");
|
||||
core.debug(`Hugo extended: ${extended}`);
|
||||
|
||||
let extendedStr = "";
|
||||
if (extended === "true") {
|
||||
extendedStr = "extended_";
|
||||
}
|
||||
|
||||
console.log(`Operating System: ${process.platform}`);
|
||||
|
||||
const hugoName = `hugo_${extendedStr}${hugoVersion}_Linux-64bit`;
|
||||
core.debug(`hugoName: ${hugoName}`);
|
||||
|
||||
const hugoURL = `https://github.com/gohugoio/hugo/releases/download/v${hugoVersion}/${hugoName}.tar.gz`;
|
||||
core.debug(`hugoURL: ${hugoURL}`);
|
||||
|
||||
const hugoPath = "/home/runner/bin";
|
||||
await io.mkdirP(hugoPath);
|
||||
core.addPath(hugoPath);
|
||||
|
||||
// Download and extract Hugo binary
|
||||
const hugoTarball = await tc.downloadTool(hugoURL);
|
||||
const hugoExtractedFolder = await tc.extractTar(hugoTarball, "/tmp");
|
||||
core.debug("hugoExtractedFolder:", hugoExtractedFolder);
|
||||
await io.mv(`${hugoExtractedFolder}/hugo`, hugoPath);
|
||||
// },
|
||||
// function(error) {
|
||||
// console.error(error);
|
||||
// console.log(
|
||||
// "HINT: GitHub API Rate limiting",
|
||||
// "https://developer.github.com/v3/#rate-limiting"
|
||||
// );
|
||||
});
|
||||
} catch (error) {
|
||||
core.setFailed(error.message);
|
||||
}
|
||||
|
||||
68
node_modules/@actions/exec/package.json
generated
vendored
68
node_modules/@actions/exec/package.json
generated
vendored
@@ -1,39 +1,15 @@
|
||||
{
|
||||
"_from": "@actions/exec",
|
||||
"_id": "@actions/exec@1.0.1",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-nvFkxwiicvpzNiCBF4wFBDfnBvi7xp/as7LE1hBxBxKG2L29+gkIPBiLKMVORL+Hg3JNf07AKRfl0V5djoypjQ==",
|
||||
"_location": "/@actions/exec",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "tag",
|
||||
"registry": true,
|
||||
"raw": "@actions/exec",
|
||||
"name": "@actions/exec",
|
||||
"escapedName": "@actions%2fexec",
|
||||
"scope": "@actions",
|
||||
"rawSpec": "",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "latest"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"#USER",
|
||||
"/",
|
||||
"/@actions/tool-cache"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.1.tgz",
|
||||
"_shasum": "1624b541165697e7008d7c87bc1f69f191263c6c",
|
||||
"_spec": "@actions/exec",
|
||||
"_where": "/Users/iris/Documents/repos/github.com/peaceiris/actions-hugo",
|
||||
"bugs": {
|
||||
"url": "https://github.com/actions/toolkit/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"deprecated": false,
|
||||
"name": "@actions/exec",
|
||||
"version": "1.0.1",
|
||||
"description": "Actions exec lib",
|
||||
"devDependencies": {
|
||||
"@actions/io": "^1.0.1"
|
||||
},
|
||||
"keywords": [
|
||||
"github",
|
||||
"actions",
|
||||
"exec"
|
||||
],
|
||||
"homepage": "https://github.com/actions/toolkit/tree/master/packages/exec",
|
||||
"license": "MIT",
|
||||
"main": "lib/exec.js",
|
||||
"directories": {
|
||||
"lib": "lib",
|
||||
"test": "__tests__"
|
||||
@@ -41,16 +17,6 @@
|
||||
"files": [
|
||||
"lib"
|
||||
],
|
||||
"gitHead": "a2ab4bcf78e4f7080f0d45856e6eeba16f0bbc52",
|
||||
"homepage": "https://github.com/actions/toolkit/tree/master/packages/exec",
|
||||
"keywords": [
|
||||
"github",
|
||||
"actions",
|
||||
"exec"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "lib/exec.js",
|
||||
"name": "@actions/exec",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
@@ -62,5 +28,15 @@
|
||||
"test": "echo \"Error: run tests from root\" && exit 1",
|
||||
"tsc": "tsc"
|
||||
},
|
||||
"version": "1.0.1"
|
||||
}
|
||||
"bugs": {
|
||||
"url": "https://github.com/actions/toolkit/issues"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@actions/io": "^1.0.1"
|
||||
},
|
||||
"gitHead": "a2ab4bcf78e4f7080f0d45856e6eeba16f0bbc52"
|
||||
|
||||
,"_resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.1.tgz"
|
||||
,"_integrity": "sha512-nvFkxwiicvpzNiCBF4wFBDfnBvi7xp/as7LE1hBxBxKG2L29+gkIPBiLKMVORL+Hg3JNf07AKRfl0V5djoypjQ=="
|
||||
,"_from": "@actions/exec@1.0.1"
|
||||
}
|
||||
6
package-lock.json
generated
6
package-lock.json
generated
@@ -1334,9 +1334,9 @@
|
||||
}
|
||||
},
|
||||
"eslint": {
|
||||
"version": "6.4.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-6.4.0.tgz",
|
||||
"integrity": "sha512-WTVEzK3lSFoXUovDHEbkJqCVPEPwbhCq4trDktNI6ygs7aO41d4cDT0JFAT5MivzZeVLWlg7vHL+bgrQv/t3vA==",
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-6.3.0.tgz",
|
||||
"integrity": "sha512-ZvZTKaqDue+N8Y9g0kp6UPZtS4FSY3qARxBs7p4f0H0iof381XHduqVerFWtK8DPtKmemqbqCFENWSQgPR/Gow==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.0.0",
|
||||
|
||||
@@ -26,13 +26,12 @@
|
||||
"homepage": "https://github.com/peaceiris/actions-hugo#readme",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.1.0",
|
||||
"@actions/exec": "^1.0.1",
|
||||
"@actions/io": "^1.0.1",
|
||||
"@actions/tool-cache": "^1.1.1",
|
||||
"xmlhttprequest": "^1.8.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^6.4.0",
|
||||
"eslint": "^6.3.0",
|
||||
"jest": "^24.9.0"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user