mirror of
https://github.com/awalsh128/cache-apt-pkgs-action.git
synced 2026-11-13 21:36:56 +00:00
* style: set Prettier print width to 110 and reformat Without a repo config, the Prettier CLI and Trunk used the default width of 80, while editors with a user printWidth reflowed files on save, producing formatting-only diffs. Pin the width in .prettierrc.json and reformat source, tests, scripts and JS/TS config files to match. Files that already failed Prettier at width 80 for unrelated reasons (tsconfig*.json, .trunk/*, V2_FAQ.MD) are left untouched. No code changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test: cover cache restore and save failure paths Codecov flagged lines in #246 as uncovered patch lines; they were untested before the reformat touched them. Add behavior tests for: - Cache: cache miss, missing or empty manifests, unreadable cache dir, metapackage-only restore, install scripts running after their archive with dpkg actions, existing archives, unavailable cache service, and save failures. - ManifestEntry.fromJSON round trip. - buildFileList dropping missing files, updateAptLists skipping update for populated lists and searching only to max depth, and fromInput ignoring a version without a package name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
63 lines
2.1 KiB
JavaScript
63 lines
2.1 KiB
JavaScript
import commonjs from "@rollup/plugin-commonjs";
|
|
import json from "@rollup/plugin-json";
|
|
import { nodeResolve } from "@rollup/plugin-node-resolve";
|
|
import fs from "node:fs";
|
|
|
|
// ts-apt runs scripts/dist/apt-fast.sh, which it finds relative to its own
|
|
// module (i.e. ../scripts/dist from the bundle). Bundling moves that module
|
|
// into dist/action/index.js, so ship the scripts at dist/scripts/dist.
|
|
const TS_APT_SCRIPTS_SRC = "node_modules/ts-apt/scripts/dist";
|
|
const TS_APT_SCRIPTS_DEST = "dist/scripts/dist";
|
|
|
|
/** Copies the ts-apt shell scripts next to the bundle after it's written. */
|
|
function copyTsAptScripts() {
|
|
return {
|
|
name: "copy-ts-apt-scripts",
|
|
writeBundle() {
|
|
fs.cpSync(TS_APT_SCRIPTS_SRC, TS_APT_SCRIPTS_DEST, { recursive: true });
|
|
},
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Bundles the action and all of its dependencies into dist/action/index.js,
|
|
* the entrypoint action.yml runs. GitHub Actions doesn't install node_modules, so
|
|
* the bundle has to be self-contained.
|
|
*
|
|
* The input is the tsc output from `npm run build:lib`, so TypeScript is only
|
|
* compiled one way.
|
|
*
|
|
* @type {import('rollup').RollupOptions}
|
|
*/
|
|
export default {
|
|
input: "dist/src/index.js",
|
|
output: {
|
|
file: "dist/action/index.js",
|
|
format: "es",
|
|
sourcemap: true,
|
|
// Some CommonJS dependencies call require() at runtime.
|
|
banner:
|
|
"import { createRequire as __createRequire } from 'node:module';\n" +
|
|
"const require = __createRequire(import.meta.url);",
|
|
},
|
|
plugins: [
|
|
nodeResolve({ preferBuiltins: true, exportConditions: ["node"] }),
|
|
commonjs(),
|
|
json(),
|
|
copyTsAptScripts(),
|
|
],
|
|
onwarn(warning, warn) {
|
|
// Dependencies trigger these and they are harmless and very noisy:
|
|
// top level `this` in ES modules, misplaced /*@__PURE__*/ comments and
|
|
// circular imports inside third-party packages.
|
|
const fromDependency = (warning.ids ?? [warning.id ?? ""]).every((id) => id.includes("node_modules"));
|
|
if (
|
|
warning.code === "THIS_IS_UNDEFINED" ||
|
|
(fromDependency && ["INVALID_ANNOTATION", "CIRCULAR_DEPENDENCY"].includes(warning.code))
|
|
) {
|
|
return;
|
|
}
|
|
warn(warning);
|
|
},
|
|
};
|