mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 17:11:56 +00:00
fd471aef6e
* fix: Try and fix sccache toggle...again Signed-off-by: Gilver <roachy@fyralabs.com> * Beep Signed-off-by: Gilver <roachy@fyralabs.com> * Revert "Beep" This reverts commit34ee5aa7fa. * ? Signed-off-by: Gilver <roachy@fyralabs.com> * chore: sccache path Signed-off-by: Gilver <roachy@fyralabs.com> * chore: Add back if Signed-off-by: Gilver <roachy@fyralabs.com> * The Success * fix: Reminder to disable autoformatting on Kate again * feat: sccache summary back Signed-off-by: Gilver <roachy@fyralabs.com> --------- Signed-off-by: Gilver <roachy@fyralabs.com> (cherry picked from commitd2e74d4b37) Signed-off-by: GildedRoach <GildedRoach@users.noreply.github.com> # Conflicts: # .github/workflows/json-build.yml
181 lines
6.0 KiB
JavaScript
181 lines
6.0 KiB
JavaScript
// Configure sccache environment variables for GitHub Actions cache integration
|
|
//
|
|
// This script is still unused until we build terra-sccache with this supported,
|
|
// Turns out that Fedora's sccache build has the GHA feature support disabled.
|
|
//
|
|
// Note: ACTIONS_CACHE_SERVICE_V2 and SCCACHE_GHA_ENABLED are set at workflow level
|
|
module.exports = async ({ github, context, core, exec }) => {
|
|
// Find sccache path (try which command)
|
|
let sccachePath = "/usr/bin/sccache";
|
|
try {
|
|
const result = await exec.getExecOutput("which", ["sccache"], {
|
|
ignoreReturnCode: true,
|
|
silent: true,
|
|
});
|
|
if (result.exitCode === 0 && result.stdout.trim()) {
|
|
sccachePath = result.stdout.trim();
|
|
core.info(`Found sccache at: ${sccachePath}`);
|
|
}
|
|
} catch (e) {
|
|
core.debug(`Could not find sccache path: ${e.message}`);
|
|
}
|
|
|
|
// Check sccache version
|
|
try {
|
|
const versionResult = await exec.getExecOutput(sccachePath, ["--version"], {
|
|
ignoreReturnCode: true,
|
|
silent: true,
|
|
});
|
|
core.info(`sccache version: ${versionResult.stdout.trim()}`);
|
|
} catch (e) {
|
|
core.warning(`Could not get sccache version: ${e.message}`);
|
|
}
|
|
|
|
// Enable caching
|
|
core.exportVariable("RUSTC_WRAPPER", sccachePath);
|
|
core.exportVariable("SCCACHE_GHA_ENABLED", "true");
|
|
|
|
// Disable Cargo incremental builds to not interfere with caching
|
|
core.exportVariable("CARGO_INCREMENTAL", "false");
|
|
|
|
// Debug: Show what environment variables are available
|
|
core.info("=== Environment Variables Diagnostic ===");
|
|
core.info(`SCCACHE_GHA_ENABLED: ${process.env.SCCACHE_GHA_ENABLED}`);
|
|
core.info(
|
|
`ACTIONS_CACHE_SERVICE_V2: ${process.env.ACTIONS_CACHE_SERVICE_V2}`,
|
|
);
|
|
core.info(
|
|
`ACTIONS_RESULTS_URL: ${process.env.ACTIONS_RESULTS_URL ? "SET (length: " + process.env.ACTIONS_RESULTS_URL.length + ")" : "NOT SET"}`,
|
|
);
|
|
core.info(
|
|
`ACTIONS_RUNTIME_TOKEN: ${process.env.ACTIONS_RUNTIME_TOKEN ? "SET (length: " + process.env.ACTIONS_RUNTIME_TOKEN.length + ")" : "NOT SET"}`,
|
|
);
|
|
core.info(`RUSTC_WRAPPER: ${process.env.RUSTC_WRAPPER}`);
|
|
core.info(`SCCACHE_LOG: ${process.env.SCCACHE_LOG}`);
|
|
core.info("========================================");
|
|
|
|
// Export SCCACHE_PATH so it's available to subsequent steps
|
|
core.exportVariable("SCCACHE_PATH", sccachePath);
|
|
|
|
// Expose the GHA cache related variables to make it easier for users to
|
|
// integrate with GHA support (from upstream mozilla/sccache-action)
|
|
if (process.env.ACTIONS_RESULTS_URL) {
|
|
core.exportVariable("ACTIONS_RESULTS_URL", process.env.ACTIONS_RESULTS_URL);
|
|
core.info("✓ Exported ACTIONS_RESULTS_URL");
|
|
} else {
|
|
core.error(
|
|
"ACTIONS_RESULTS_URL is not set - GitHub Actions cache WILL NOT work",
|
|
);
|
|
}
|
|
|
|
if (process.env.ACTIONS_RUNTIME_TOKEN) {
|
|
core.exportVariable(
|
|
"ACTIONS_RUNTIME_TOKEN",
|
|
process.env.ACTIONS_RUNTIME_TOKEN,
|
|
);
|
|
core.info("✓ Exported ACTIONS_RUNTIME_TOKEN");
|
|
} else {
|
|
core.error(
|
|
"ACTIONS_RUNTIME_TOKEN is not set - GitHub Actions cache WILL NOT work",
|
|
);
|
|
}
|
|
|
|
// Set cache version and restore keys for this specific build matrix
|
|
if (process.env.SCCACHE_GHA_VERSION) {
|
|
core.exportVariable("SCCACHE_GHA_VERSION", process.env.SCCACHE_GHA_VERSION);
|
|
}
|
|
if (process.env.SCCACHE_GHA_CACHE_FROM) {
|
|
core.exportVariable(
|
|
"SCCACHE_GHA_CACHE_FROM",
|
|
process.env.SCCACHE_GHA_CACHE_FROM,
|
|
);
|
|
}
|
|
|
|
// Check if cache busting is enabled
|
|
const inputs =
|
|
(github &&
|
|
github.context &&
|
|
github.context.payload &&
|
|
github.context.payload.inputs) ||
|
|
{};
|
|
const rawBustCache =
|
|
inputs.bust_cache ??
|
|
inputs.bustCache ??
|
|
process.env.INPUT_BUST_CACHE ??
|
|
process.env.BUST_CACHE;
|
|
let bustCache = false;
|
|
|
|
if (typeof rawBustCache === "string") {
|
|
const v = rawBustCache.toLowerCase().trim();
|
|
bustCache = v === "true" || v === "1" || v === "yes";
|
|
} else {
|
|
bustCache = !!rawBustCache;
|
|
}
|
|
|
|
if (bustCache) {
|
|
core.exportVariable("SCCACHE_BUST_CACHE", "true");
|
|
core.exportVariable("SCCACHE_RECACHE", "1");
|
|
core.info("SCCACHE_RECACHE enabled because bust_cache is true");
|
|
}
|
|
|
|
// Stop any running sccache daemon so it picks up the new environment variables
|
|
core.info("Stopping any running sccache daemon to pick up configuration...");
|
|
try {
|
|
await exec.exec(sccachePath, ["--stop-server"], {
|
|
ignoreReturnCode: true,
|
|
});
|
|
core.info("✓ sccache daemon stopped successfully");
|
|
} catch (e) {
|
|
core.debug(
|
|
`Could not stop sccache daemon (it may not be running): ${e.message}`,
|
|
);
|
|
}
|
|
|
|
// Verify sccache can see the GHA environment variables by starting server with explicit env
|
|
core.info("Starting sccache server with GHA environment variables...");
|
|
const sccacheEnv = {
|
|
...process.env,
|
|
SCCACHE_GHA_ENABLED: process.env.SCCACHE_GHA_ENABLED || "on",
|
|
ACTIONS_CACHE_SERVICE_V2: process.env.ACTIONS_CACHE_SERVICE_V2 || "on",
|
|
};
|
|
|
|
try {
|
|
await exec.exec(sccachePath, ["--start-server"], {
|
|
ignoreReturnCode: true,
|
|
env: sccacheEnv,
|
|
});
|
|
core.info("✓ sccache server started");
|
|
} catch (e) {
|
|
core.warning(`Could not start sccache server: ${e.message}`);
|
|
}
|
|
|
|
// Show the current sccache configuration
|
|
core.info("Verifying sccache configuration:");
|
|
try {
|
|
const statsResult = await exec.getExecOutput(
|
|
sccachePath,
|
|
["--show-stats"],
|
|
{
|
|
ignoreReturnCode: true,
|
|
env: sccacheEnv,
|
|
},
|
|
);
|
|
|
|
// Check if it's using GitHub Actions cache
|
|
if (statsResult.stdout.includes("GitHub Actions")) {
|
|
core.info("✓ sccache is configured to use GitHub Actions cache");
|
|
} else if (statsResult.stdout.includes("Local disk")) {
|
|
core.error(
|
|
"✗ sccache is using Local disk cache instead of GitHub Actions cache!",
|
|
);
|
|
core.error(
|
|
"This means SCCACHE_GHA_ENABLED or required env vars are not being recognized.",
|
|
);
|
|
core.info("Stats output:");
|
|
core.info(statsResult.stdout);
|
|
}
|
|
} catch (e) {
|
|
core.debug(`Could not show sccache stats: ${e.message}`);
|
|
}
|
|
};
|