Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | 7x 7x 7x 7x 7x 7x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 3x 3x 3x 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x | import type { ReleaseManagerConfig } from '../config.js';
import { coreRepo, type IGitCoreService } from '../services/gitcore-service.js';
import type { INexusFetcher } from '../services/nexus-fetcher.js';
import { assertCoreTargetMatchesPrBase, type IPrMetadataService } from '../services/pr-metadata.js';
import type { Logger } from '../utils/logger.js';
import { compareSemver } from '../utils/semver.js';
import {
generateBranchName,
generateCommitMessage,
generatePRBody,
generatePRTitle,
} from '../utils/templates.js';
export type BumpBazelPinArgs = {
pr: string;
dryRun: boolean;
};
export type BumpBazelPinDeps = {
config: ReleaseManagerConfig;
logger: Logger;
prMeta: IPrMetadataService;
nexus: INexusFetcher;
gitcore: IGitCoreService;
};
/**
* Orchestrator for the bump-slds-scs-bazel-pin flow via gitcore APIs (no Workspace).
*
* Playbook: ../../../../docs/playbooks/releases/bump-slds-scs-bazel-pin.md
*/
export async function runBumpBazelPin(args: BumpBazelPinArgs, deps: BumpBazelPinDeps): Promise<void> {
const { logger, prMeta, nexus, gitcore } = deps;
logger.step('Fetching data...');
const meta = await prMeta.resolveSldsScsPr(args.pr);
assertCoreTargetMatchesPrBase(meta.baseRefName, meta.targetBranch);
const repo = coreRepo(meta.releaseId);
const artifact = await nexus.fetchSldsScsJar(meta.newVersion);
const oldPin = await gitcore.readSldsScsPin(repo, meta.targetBranch);
logger.success('Data complete.');
const versionOk = compareSemver(meta.newVersion, oldPin.version) > 0;
const branch = generateBranchName(meta.workItemId, meta.newVersion);
const titleCtx = {
workItemId: meta.workItemId,
oldVersion: oldPin.version,
newVersion: meta.newVersion,
targetBranch: meta.targetBranch,
};
const title = generatePRTitle(titleCtx);
const commitMessage = generateCommitMessage(titleCtx);
console.log();
console.log('=== bump-bazel-pin summary ===');
console.log(`Summary: ${commitMessage}`);
console.log(`slds-scs-version: ${meta.newVersion}`);
console.log(`core-version: ${oldPin.version}`);
console.log(`repo: ${repo}`);
console.log(`target: ${meta.targetBranch}`);
console.log(`branch: ${branch}`);
console.log();
if (!versionOk) {
logger.error(
`Core already pins ${oldPin.version}. To bump the Bazel version, publish a newer slds-scs release, open a new aura/slds-scs PR, then re-run.`,
);
return;
}
if (args.dryRun) {
logger.step(`yarn workspace @salesforce-ux/sds-release-manager bump-bazel-pin --pr ${args.pr}`);
return;
}
logger.step('1. Pin diff');
const prepared = await gitcore.preparePinUpdate(repo, meta.targetBranch, {
newVersion: meta.newVersion,
newSha256: artifact.sha256,
newSha1: artifact.sha1,
});
console.log(prepared.diff);
const body = generatePRBody({
...titleCtx,
sldsScsPrUrl: meta.url,
nexusArtifactUrl: artifact.url,
});
logger.success(`Branch: ${branch}`);
logger.success(`Title: ${title}`);
logger.info('PR body:');
console.log(body);
logger.step('2. Create branch and commit pin files via gitcore API');
await gitcore.commitFiles({
repo,
baseBranch: meta.targetBranch,
newBranch: branch,
message: commitMessage,
files: [
{ path: prepared.versionPath, content: prepared.versionNew },
{ path: prepared.catalogPath, content: prepared.catalogNew },
],
});
logger.step('3. Create pull request');
const prUrl = await gitcore.createPullRequest({
repo,
base: meta.targetBranch,
head: branch,
title,
body,
});
logger.success(`Opened ${prUrl}`);
}
|