mirror of
https://github.com/DeLaGuardo/setup-clojure.git
synced 2024-12-27 08:31:04 +08:00
Attempt to use pre/post for caching
This commit is contained in:
parent
28aba54040
commit
c3c99992f9
@ -36,4 +36,6 @@ inputs:
|
|||||||
required: false
|
required: false
|
||||||
runs:
|
runs:
|
||||||
using: 'node12'
|
using: 'node12'
|
||||||
main: 'dist/index.js'
|
main: 'dist/main/index.js'
|
||||||
|
pre: 'dist/pre/index.js'
|
||||||
|
post: 'dist/post/index.js'
|
||||||
|
7057
dist/index.js
vendored
7057
dist/index.js
vendored
File diff suppressed because it is too large
Load Diff
1
dist/index.js.map
vendored
1
dist/index.js.map
vendored
File diff suppressed because one or more lines are too long
65552
dist/main/index.js
vendored
Normal file
65552
dist/main/index.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/main/index.js.map
vendored
Normal file
1
dist/main/index.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
65552
dist/post/index.js
vendored
Normal file
65552
dist/post/index.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/post/index.js.map
vendored
Normal file
1
dist/post/index.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/post/sourcemap-register.js
vendored
Normal file
1
dist/post/sourcemap-register.js
vendored
Normal file
File diff suppressed because one or more lines are too long
65552
dist/pre/index.js
vendored
Normal file
65552
dist/pre/index.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/pre/index.js.map
vendored
Normal file
1
dist/pre/index.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/pre/sourcemap-register.js
vendored
Normal file
1
dist/pre/sourcemap-register.js
vendored
Normal file
File diff suppressed because one or more lines are too long
11764
package-lock.json
generated
11764
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
27
package.json
27
package.json
@ -9,10 +9,14 @@
|
|||||||
"format": "prettier --write **/*.ts",
|
"format": "prettier --write **/*.ts",
|
||||||
"format-check": "prettier --check **/*.ts",
|
"format-check": "prettier --check **/*.ts",
|
||||||
"lint": "eslint src/**/*.ts",
|
"lint": "eslint src/**/*.ts",
|
||||||
"package": "ncc build --source-map",
|
"package_main": "ncc build ./lib/setup-clojure.js --source-map --out ./dist/main",
|
||||||
|
"package_pre": "ncc build ./lib/pre-setup-clojure.js --source-map --out ./dist/pre",
|
||||||
|
"package_post": "ncc build ./lib/post-setup-clojure.js --source-map --out ./dist/post",
|
||||||
|
"package": "npm run package_main && npm run package_pre && npm run package_post",
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
"update-deps": "ncu -u",
|
"update-deps": "ncu -u",
|
||||||
"all": "npm run build && npm run format && npm run lint && npm run package && npm test"
|
"release": "npm run build && npm run format && npm run lint && npm run package",
|
||||||
|
"all": "npm run release && npm test"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@ -26,6 +30,7 @@
|
|||||||
"author": "DeLaGuardo",
|
"author": "DeLaGuardo",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@actions/cache": "^3.0.0",
|
||||||
"@actions/core": "^1.9.0",
|
"@actions/core": "^1.9.0",
|
||||||
"@actions/exec": "^1.1.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"@actions/http-client": "^2.0.1",
|
"@actions/http-client": "^2.0.1",
|
||||||
@ -33,20 +38,20 @@
|
|||||||
"@actions/tool-cache": "^2.0.1"
|
"@actions/tool-cache": "^2.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^28.1.4",
|
"@types/jest": "^28.1.6",
|
||||||
"@types/node": "^18.0.0",
|
"@types/node": "^18.0.6",
|
||||||
"@types/semver": "^7.3.10",
|
"@types/semver": "^7.3.10",
|
||||||
"@typescript-eslint/parser": "^5.30.0",
|
"@typescript-eslint/parser": "^5.30.7",
|
||||||
"@vercel/ncc": "^0.34.0",
|
"@vercel/ncc": "^0.34.0",
|
||||||
"eslint": "^8.18.0",
|
"eslint": "^8.20.0",
|
||||||
"eslint-plugin-github": "^4.3.6",
|
"eslint-plugin-github": "^4.3.6",
|
||||||
"eslint-plugin-jest": "^26.5.3",
|
"eslint-plugin-jest": "^26.6.0",
|
||||||
"jest": "^28.1.2",
|
"jest": "^28.1.3",
|
||||||
"jest-circus": "^28.1.2",
|
"jest-circus": "^28.1.3",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"npm-check-updates": "^15.0.1",
|
"npm-check-updates": "^15.3.4",
|
||||||
"prettier": "2.7.1",
|
"prettier": "2.7.1",
|
||||||
"ts-jest": "^28.0.5",
|
"ts-jest": "^28.0.7",
|
||||||
"typescript": "^4.7.4"
|
"typescript": "^4.7.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
35
src/cache.ts
Normal file
35
src/cache.ts
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import * as cache from '@actions/cache'
|
||||||
|
import * as core from '@actions/core'
|
||||||
|
import * as path from 'path'
|
||||||
|
|
||||||
|
const cacheDir = _getCacheDirectory()
|
||||||
|
const tools = [
|
||||||
|
'Babashka',
|
||||||
|
'Boot',
|
||||||
|
'ClojureToolsDeps',
|
||||||
|
'cljstyle',
|
||||||
|
'clj-kondo',
|
||||||
|
'Leiningen',
|
||||||
|
'zprint'
|
||||||
|
]
|
||||||
|
const cachePaths = tools.map(tool => path.join(cacheDir, tool))
|
||||||
|
const cacheKey = `action-setup-clojure-tools-${tools.join('-')}`
|
||||||
|
|
||||||
|
export async function save(): Promise<void> {
|
||||||
|
const cacheId = await cache.saveCache(cachePaths, cacheKey)
|
||||||
|
|
||||||
|
if (cacheId !== -1) {
|
||||||
|
core.info(`Cache saved with key: ${cacheKey}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function restore(): Promise<void> {
|
||||||
|
await cache.restoreCache(cachePaths, cacheKey, [
|
||||||
|
'action-setup-clojure-tools-'
|
||||||
|
])
|
||||||
|
}
|
||||||
|
|
||||||
|
function _getCacheDirectory(): string {
|
||||||
|
const cacheDirectory = process.env['RUNNER_TOOL_CACHE'] || ''
|
||||||
|
return cacheDirectory
|
||||||
|
}
|
@ -7,6 +7,7 @@ import * as cljKondo from './clj-kondo'
|
|||||||
import * as cljstyle from './cljstyle'
|
import * as cljstyle from './cljstyle'
|
||||||
import * as zprint from './zprint'
|
import * as zprint from './zprint'
|
||||||
import * as utils from './utils'
|
import * as utils from './utils'
|
||||||
|
import {save, restore} from './cache'
|
||||||
|
|
||||||
export async function run(): Promise<void> {
|
export async function run(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
@ -83,3 +84,11 @@ export async function run(): Promise<void> {
|
|||||||
core.setFailed(error)
|
core.setFailed(error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function pre(): Promise<void> {
|
||||||
|
restore()
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function post(): Promise<void> {
|
||||||
|
save()
|
||||||
|
}
|
||||||
|
3
src/post-setup-clojure.ts
Normal file
3
src/post-setup-clojure.ts
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
import {post} from './entrypoint'
|
||||||
|
|
||||||
|
post()
|
3
src/pre-setup-clojure.ts
Normal file
3
src/pre-setup-clojure.ts
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
import {pre} from './entrypoint'
|
||||||
|
|
||||||
|
pre()
|
Loading…
x
Reference in New Issue
Block a user