Publish Clusterflux release candidate 6e83783
This commit is contained in:
parent
4d75257c6e
commit
f3640643bd
16 changed files with 4667 additions and 106 deletions
|
|
@ -513,6 +513,24 @@ function reuseCandidateHostedBinary(candidate, releaseName) {
|
|||
return archive;
|
||||
}
|
||||
|
||||
function reuseCandidateExtension(candidate) {
|
||||
assertCandidateManifest(candidate);
|
||||
const asset = candidate.assets.find((entry) => entry.name.endsWith(".vsix"));
|
||||
if (!asset || !fs.existsSync(asset.file)) {
|
||||
throw new Error("release candidate VSIX is missing");
|
||||
}
|
||||
const digest = sha256File(asset.file);
|
||||
if (
|
||||
digest !== asset.sha256 ||
|
||||
digest !== candidate.release_candidate.extension_sha256
|
||||
) {
|
||||
throw new Error("release candidate VSIX digest changed after candidate creation");
|
||||
}
|
||||
const archive = path.join(assetsDir, asset.name);
|
||||
fs.copyFileSync(asset.file, archive);
|
||||
return archive;
|
||||
}
|
||||
|
||||
function assertCandidateManifest(candidate) {
|
||||
if (candidate.kind !== "clusterflux-public-release") {
|
||||
throw new Error("release candidate manifest has the wrong kind");
|
||||
|
|
@ -529,6 +547,9 @@ function assertCandidateManifest(candidate) {
|
|||
if (!candidate.release_candidate.hosted_binary_archive_sha256) {
|
||||
throw new Error("release candidate omitted the hosted service archive digest");
|
||||
}
|
||||
if (!candidate.release_candidate.extension_sha256) {
|
||||
throw new Error("release candidate omitted the VSIX digest");
|
||||
}
|
||||
}
|
||||
|
||||
function stageEvidenceAsset(
|
||||
|
|
@ -735,26 +756,30 @@ function stageSourceAsset(releaseName) {
|
|||
}
|
||||
|
||||
function stageExtensionAsset() {
|
||||
const extensionRoot = path.join(publicTree, "vscode-extension");
|
||||
const packageJson = JSON.parse(
|
||||
fs.readFileSync(path.join(publicTree, "vscode-extension/package.json"), "utf8")
|
||||
fs.readFileSync(path.join(extensionRoot, "package.json"), "utf8")
|
||||
);
|
||||
const archive = path.join(
|
||||
assetsDir,
|
||||
`${packageJson.name}-${packageJson.version}.vsix`
|
||||
);
|
||||
run("npm", ["ci", "--ignore-scripts", "--no-audit", "--no-fund"], {
|
||||
cwd: extensionRoot,
|
||||
});
|
||||
run(
|
||||
"npx",
|
||||
path.join(extensionRoot, "node_modules", ".bin", "vsce"),
|
||||
[
|
||||
"--yes",
|
||||
"@vscode/vsce",
|
||||
"package",
|
||||
"--allow-missing-repository",
|
||||
"--skip-license",
|
||||
"--out",
|
||||
archive,
|
||||
],
|
||||
{ cwd: path.join(publicTree, "vscode-extension") }
|
||||
{ cwd: extensionRoot }
|
||||
);
|
||||
run("node", ["scripts/vscode-extension-smoke.js"], { cwd: publicTree });
|
||||
run("node", ["scripts/vscode-f5-smoke.js"], { cwd: publicTree });
|
||||
return archive;
|
||||
}
|
||||
|
||||
|
|
@ -1087,11 +1112,13 @@ function main() {
|
|||
: publishPublicTree(releaseName, sourceCommit, publicTreeIdentity);
|
||||
let binaryArchive;
|
||||
let hostedBinaryArchive;
|
||||
let extensionArchive;
|
||||
let binaryDigests;
|
||||
let candidateBinding;
|
||||
if (candidate) {
|
||||
binaryArchive = reuseCandidateBinaries(candidate, releaseName);
|
||||
hostedBinaryArchive = reuseCandidateHostedBinary(candidate, releaseName);
|
||||
extensionArchive = reuseCandidateExtension(candidate);
|
||||
binaryDigests = candidate.binary_digests;
|
||||
candidateBinding = {
|
||||
mode: "finalized-exact",
|
||||
|
|
@ -1099,17 +1126,20 @@ function main() {
|
|||
manifest_sha256: sha256File(candidateManifestPath),
|
||||
binary_archive_sha256: sha256File(binaryArchive),
|
||||
hosted_binary_archive_sha256: sha256File(hostedBinaryArchive),
|
||||
extension_sha256: sha256File(extensionArchive),
|
||||
};
|
||||
} else {
|
||||
buildPublicBinaries();
|
||||
buildHostedBinary();
|
||||
binaryArchive = stageBinaryAssets(releaseName);
|
||||
hostedBinaryArchive = stageHostedBinaryAsset(releaseName);
|
||||
extensionArchive = stageExtensionAsset();
|
||||
binaryDigests = candidateBinaryDigests();
|
||||
candidateBinding = {
|
||||
mode: "built-once",
|
||||
binary_archive_sha256: sha256File(binaryArchive),
|
||||
hosted_binary_archive_sha256: sha256File(hostedBinaryArchive),
|
||||
extension_sha256: sha256File(extensionArchive),
|
||||
};
|
||||
}
|
||||
const candidateConfigurationIdentity =
|
||||
|
|
@ -1131,7 +1161,6 @@ function main() {
|
|||
candidateProxyConfigurationIdentity
|
||||
);
|
||||
const evidenceArchive = evidence.archive;
|
||||
const extensionArchive = stageExtensionAsset();
|
||||
const resolution = resolverInstructions();
|
||||
const gettingStarted = writeGettingStartedAsset(
|
||||
releaseName,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue