@rightkit/release 0.2.146 → 0.2.147
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-release.mjs +5 -4
- package/package.json +1 -1
- package/release-cache-mode.mjs +21 -0
- package/rightkit-versions.json +4 -3
package/build-release.mjs
CHANGED
|
@@ -31,7 +31,7 @@ import { createTargetBridge } from "./target-bridge.mjs";
|
|
|
31
31
|
import { signingReceiptPath } from "./signing-receipts.mjs";
|
|
32
32
|
import { validateNotarizationReceipt } from "./macos-notarization.mjs";
|
|
33
33
|
import { brokerManagedHost } from "./cargo-contract.mjs";
|
|
34
|
-
import { resolveReleaseCacheMode } from "./release-cache-mode.mjs";
|
|
34
|
+
import { ensureLegacyTargetLink, resolveReleaseCacheMode } from "./release-cache-mode.mjs";
|
|
35
35
|
import { resolveTargetRoot } from "./cargo-target.mjs";
|
|
36
36
|
import { assertNsisInPlaceUpgradeContract } from "./nsis-upgrade-contract.mjs";
|
|
37
37
|
import { collectSwiftToolVersions, planSwiftBuild } from "./swift-build-context.mjs";
|
|
@@ -363,9 +363,10 @@ try {
|
|
|
363
363
|
// flag already knows to leave a real directory untouched instead.
|
|
364
364
|
if (swiftPlan) { /* SwiftPM: no Rust target link */ }
|
|
365
365
|
else if (cacheMode === "shared" || managedCargoTarget) targetBridge.ensure();
|
|
366
|
-
else
|
|
367
|
-
|
|
368
|
-
|
|
366
|
+
else {
|
|
367
|
+
const linked = ensureLegacyTargetLink({ targetLink, cacheTarget, fs: { existsSync, realpathSync, renameSync, symlinkSync } });
|
|
368
|
+
if (linked.action === "refused") fail(linked.reason);
|
|
369
|
+
if (linked.action === "moved-aside") console.error(`[right-release] hosted CI: moved existing ${targetLink} aside to ${linked.aside}`);
|
|
369
370
|
}
|
|
370
371
|
if (resolveProjectType({ appRoot, config, target }) !== "swiftpm" || config.packageManager) await runProgress(config.packageManager ?? "pnpm", ["install", "--frozen-lockfile"], appRoot, env, cacheTarget, path.join(stateRoot, "stall-install.log"));
|
|
371
372
|
},
|
package/package.json
CHANGED
package/release-cache-mode.mjs
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { isManagedHost } from "./managed-host-secrets.mjs";
|
|
2
|
+
|
|
1
3
|
export function resolveReleaseCacheMode({ requested, platform, env = process.env } = {}) {
|
|
2
4
|
const fallback = env.GITHUB_ACTIONS === "true"
|
|
3
5
|
? "legacy"
|
|
@@ -6,3 +8,22 @@ export function resolveReleaseCacheMode({ requested, platform, env = process.env
|
|
|
6
8
|
if (mode !== "legacy" && mode !== "shared") throw new Error("RIGHT_RELEASE_CACHE_MODE must be legacy or shared");
|
|
7
9
|
return mode;
|
|
8
10
|
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Legacy (non-shared, non-broker) mode links the checkout's target directory to the release cache.
|
|
14
|
+
* A target that already exists and points elsewhere fails closed on developer hosts, where it may hold
|
|
15
|
+
* work. Hosted CI runners are ephemeral: an earlier workflow step (a build or a cache restore) may have
|
|
16
|
+
* created a real target directory, so it is renamed aside and the link created instead of failing.
|
|
17
|
+
*/
|
|
18
|
+
export function ensureLegacyTargetLink({ targetLink, cacheTarget, platform = process.platform, env = process.env, fs, now = () => Date.now() }) {
|
|
19
|
+
const linkType = platform === "win32" ? "junction" : "dir";
|
|
20
|
+
if (!fs.existsSync(targetLink)) { fs.symlinkSync(cacheTarget, targetLink, linkType); return { action: "linked" }; }
|
|
21
|
+
if (fs.realpathSync(targetLink) === fs.realpathSync(cacheTarget)) return { action: "current" };
|
|
22
|
+
if (env.GITHUB_ACTIONS !== "true" || isManagedHost(env)) {
|
|
23
|
+
return { action: "refused", reason: `primary checkout target exists and is not the release cache link: ${targetLink}` };
|
|
24
|
+
}
|
|
25
|
+
const aside = `${targetLink}.pre-right-release-${now()}`;
|
|
26
|
+
fs.renameSync(targetLink, aside);
|
|
27
|
+
fs.symlinkSync(cacheTarget, targetLink, linkType);
|
|
28
|
+
return { action: "moved-aside", aside };
|
|
29
|
+
}
|
package/rightkit-versions.json
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"@rightkit/platform-ui": "0.2.0",
|
|
30
30
|
"@rightkit/qa": "0.4.0",
|
|
31
31
|
"@rightkit/qa-chrome": "0.1.3",
|
|
32
|
-
"@rightkit/release": "0.2.
|
|
32
|
+
"@rightkit/release": "0.2.147",
|
|
33
33
|
"@rightkit/settings-ui": "0.3.0",
|
|
34
34
|
"@rightkit/shell": "0.1.0",
|
|
35
35
|
"@rightkit/tauri": "0.2.0",
|
|
@@ -178,7 +178,8 @@
|
|
|
178
178
|
"0.2.142",
|
|
179
179
|
"0.2.143",
|
|
180
180
|
"0.2.144",
|
|
181
|
-
"0.2.145"
|
|
181
|
+
"0.2.145",
|
|
182
|
+
"0.2.146"
|
|
182
183
|
],
|
|
183
184
|
"@rightkit/qa": [
|
|
184
185
|
"0.1.0",
|
|
@@ -390,7 +391,7 @@
|
|
|
390
391
|
"@rightkit/platform-ui": "0.2.0",
|
|
391
392
|
"@rightkit/qa": "0.4.0",
|
|
392
393
|
"@rightkit/qa-chrome": "0.1.3",
|
|
393
|
-
"@rightkit/release": "0.2.
|
|
394
|
+
"@rightkit/release": "0.2.147",
|
|
394
395
|
"@rightkit/settings-ui": "0.3.0",
|
|
395
396
|
"@rightkit/shell": "0.1.0",
|
|
396
397
|
"@rightkit/tauri": "0.2.0",
|