mirror of
https://github.com/Swatinem/rust-cache
synced 2026-09-07 20:03:24 +00:00
use rollup to do bundle splitting
this uses dynamic imports for the cache provider and should thus solve the deprecated import error when using warpbuild
This commit is contained in:
Vendored
+247450
File diff suppressed because one or more lines are too long
Vendored
+48972
File diff suppressed because it is too large
Load Diff
Vendored
+34833
File diff suppressed because one or more lines are too long
Vendored
+39
-332869
File diff suppressed because one or more lines are too long
Vendored
+43
-333006
File diff suppressed because one or more lines are too long
Vendored
+1847
File diff suppressed because it is too large
Load Diff
+5
-18
@@ -1,24 +1,11 @@
|
||||
// import * as fs from "node:fs";
|
||||
|
||||
import commonjs from "@rollup/plugin-commonjs";
|
||||
import json from "@rollup/plugin-json";
|
||||
import nodeResolve from "@rollup/plugin-node-resolve";
|
||||
import type { RollupWatchOptions } from "rollup";
|
||||
|
||||
// const pkg = JSON.parse(fs.readFileSync("./package.json", { encoding: "utf-8" }));
|
||||
// const external = ["node:module", "node:path", "node:fs", "node:fs/promises", "typescript", "rollup", "@babel/code-frame", "magic-string", "@jridgewell/remapping", "@jridgewell/sourcemap-codec", "convert-source-map"];
|
||||
|
||||
const config: Array<RollupWatchOptions> = [
|
||||
{
|
||||
input: "./.build/src/restore.js",
|
||||
output: { file: "./dist/restore.js", format: "es" },
|
||||
plugins: [nodeResolve({ preferBuiltins: true }), commonjs(), json()],
|
||||
},
|
||||
{
|
||||
input: "./.build/src/save.js",
|
||||
output: { file: "./dist/save.js", format: "es" },
|
||||
plugins: [nodeResolve({ preferBuiltins: true }), commonjs(), json()],
|
||||
},
|
||||
];
|
||||
|
||||
const config: RollupWatchOptions = {
|
||||
input: ["./.build/src/restore.js", "./.build/src/save.js"],
|
||||
output: { dir: "./dist", format: "es" },
|
||||
plugins: [nodeResolve({ preferBuiltins: true }), commonjs(), json()],
|
||||
};
|
||||
export default config;
|
||||
|
||||
+5
-4
@@ -12,7 +12,7 @@ process.on("uncaughtException", (e) => {
|
||||
});
|
||||
|
||||
async function run() {
|
||||
const cacheProvider = getCacheProvider();
|
||||
const cacheProvider = await getCacheProvider();
|
||||
|
||||
if (!cacheProvider.cache.isFeatureAvailable()) {
|
||||
setCacheHitOutput(false);
|
||||
@@ -42,9 +42,10 @@ async function run() {
|
||||
lookupOnly,
|
||||
});
|
||||
if (restoreKey) {
|
||||
const match = restoreKey.localeCompare(key, undefined, {
|
||||
sensitivity: "accent"
|
||||
}) === 0;
|
||||
const match =
|
||||
restoreKey.localeCompare(key, undefined, {
|
||||
sensitivity: "accent",
|
||||
}) === 0;
|
||||
core.info(`${lookupOnly ? "Found" : "Restored from"} cache key "${restoreKey}" full match: ${match}.`);
|
||||
if (!match) {
|
||||
// pre-clean the target directory on cache mismatch
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ process.on("uncaughtException", (e) => {
|
||||
});
|
||||
|
||||
async function run() {
|
||||
const cacheProvider = getCacheProvider();
|
||||
const cacheProvider = await getCacheProvider();
|
||||
|
||||
const save = core.getInput("save-if").toLowerCase() || "true";
|
||||
|
||||
|
||||
+5
-7
@@ -1,7 +1,5 @@
|
||||
import * as core from "@actions/core";
|
||||
import * as exec from "@actions/exec";
|
||||
import * as warpbuildCache from "@actions/warpbuild-cache";
|
||||
import * as ghCache from "@actions/cache";
|
||||
import fs from "fs";
|
||||
|
||||
export function reportError(e: any) {
|
||||
@@ -42,8 +40,8 @@ export async function getCmdOutput(cmdFormat: string, cmd: string, options: exec
|
||||
}
|
||||
|
||||
export interface GhCache {
|
||||
isFeatureAvailable: typeof ghCache.isFeatureAvailable;
|
||||
restoreCache: typeof ghCache.restoreCache;
|
||||
isFeatureAvailable: typeof import("@actions/cache").isFeatureAvailable;
|
||||
restoreCache: typeof import("@actions/cache").restoreCache;
|
||||
saveCache: (paths: string[], key: string) => Promise<string | number>;
|
||||
}
|
||||
|
||||
@@ -52,15 +50,15 @@ export interface CacheProvider {
|
||||
cache: GhCache;
|
||||
}
|
||||
|
||||
export function getCacheProvider(): CacheProvider {
|
||||
export async function getCacheProvider(): Promise<CacheProvider> {
|
||||
const cacheProvider = core.getInput("cache-provider");
|
||||
let cache: GhCache;
|
||||
switch (cacheProvider) {
|
||||
case "github":
|
||||
cache = ghCache;
|
||||
cache = await import("@actions/cache");
|
||||
break;
|
||||
case "warpbuild":
|
||||
cache = warpbuildCache;
|
||||
cache = await import("@actions/warpbuild-cache");
|
||||
break;
|
||||
default:
|
||||
throw new Error(`The \`cache-provider\` \`${cacheProvider}\` is not valid.`);
|
||||
|
||||
Reference in New Issue
Block a user