ci(netlify): add resources cache
Modified https://github.com/cdeleeuwe/netlify-plugin-hugo-cache-resources, set cache dir to `exampleSite/resources`
This commit is contained in:
parent
bad33e19ae
commit
c597c208a8
@ -0,0 +1,27 @@
|
|||||||
|
> Original Repo: https://github.com/cdeleeuwe/netlify-plugin-hugo-cache-resources
|
||||||
|
>
|
||||||
|
# Netlify Build Plugin: Persist Hugo resources Between Builds
|
||||||
|
|
||||||
|
Persist [Hugo](https://gohugo.io/) resources folder between Netlify builds for huge build speed improvements! ⚡️
|
||||||
|
|
||||||
|
This plugin caches the `resources` folder after build. If you are processing many images, this would improve build duration significantly.
|
||||||
|
|
||||||
|
Note: Restoring cache only comes from the production branch. So once cache is saved on the production branch, the next preview build would use the cache. For example, when pushing to the same preview build, the latest preview build will not get the cache from the previous preview build, but will get it from master.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
To install, add the following lines to your `netlify.toml` file:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[build]
|
||||||
|
publish = "public"
|
||||||
|
|
||||||
|
[[plugins]]
|
||||||
|
package = "netlify-plugin-hugo-cache-resources"
|
||||||
|
|
||||||
|
[plugins.inputs]
|
||||||
|
# If it should show more verbose logs (optional, default = true)
|
||||||
|
debug = true
|
||||||
|
```
|
||||||
|
|
||||||
|
Note: The `[[plugins]]` line is required for each plugin, even if you have other plugins in your `netlify.toml` file already.
|
@ -0,0 +1,39 @@
|
|||||||
|
const getResourcesDir = () => {
|
||||||
|
return 'exampleSite/resources';
|
||||||
|
}
|
||||||
|
|
||||||
|
const printList = (items) => {
|
||||||
|
console.log('---');
|
||||||
|
items.forEach((item, index) => {
|
||||||
|
console.log(`${index + 1}. ${item}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
async onPreBuild({ utils, inputs }) {
|
||||||
|
const path = getResourcesDir();
|
||||||
|
const success = await utils.cache.restore(path);
|
||||||
|
|
||||||
|
if (success) {
|
||||||
|
const cachedFiles = await utils.cache.list(path);
|
||||||
|
console.log(`Restored cached resources folder. Total files: ${cachedFiles.length}`);
|
||||||
|
if (inputs.debug) printList(cachedFiles);
|
||||||
|
} else {
|
||||||
|
console.log(`No cache found for resources folder`);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async onPostBuild({ utils, inputs }) {
|
||||||
|
const path = getResourcesDir();
|
||||||
|
const success = await utils.cache.save(path);
|
||||||
|
|
||||||
|
if (success) {
|
||||||
|
const cachedFiles = await utils.cache.list(path);
|
||||||
|
console.log(`Saved resources folder to cache. Total files: ${cachedFiles.length}`);
|
||||||
|
if (inputs.debug) printList(cachedFiles);
|
||||||
|
} else {
|
||||||
|
console.log(`No resources folder cached`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,5 @@
|
|||||||
|
name: netlify-plugin-hugo-cache
|
||||||
|
inputs:
|
||||||
|
- name: debug
|
||||||
|
description: Show more verbose logs
|
||||||
|
default: true
|
@ -15,3 +15,6 @@
|
|||||||
|
|
||||||
[context.deploy-preview]
|
[context.deploy-preview]
|
||||||
command = "cd exampleSite && hugo --gc --themesDir ../.. -b ${DEPLOY_PRIME_URL}"
|
command = "cd exampleSite && hugo --gc --themesDir ../.. -b ${DEPLOY_PRIME_URL}"
|
||||||
|
|
||||||
|
[[plugins]]
|
||||||
|
package = "/.netlify/plugins/netlify-plugin-hugo-cache-resources"
|
Loading…
Reference in New Issue
Block a user