Skip to content

Commit b253c65

Browse files
feat: allow project deploy <validate | quick | resume> to run outside a project (#691)
* fix: deploy validate doesn\'t require a project * chore: allow metadata dir operations in more commands
1 parent c1c51b6 commit b253c65

File tree

4 files changed

+11
-5
lines changed

4 files changed

+11
-5
lines changed

src/commands/project/deploy/quick.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ export default class DeployMetadataQuick extends SfCommand<DeployResultJson> {
2424
public static readonly description = messages.getMessage('description');
2525
public static readonly summary = messages.getMessage('summary');
2626
public static readonly examples = messages.getMessages('examples');
27-
public static readonly requiresProject = true;
2827
public static readonly aliases = ['deploy:metadata:quick'];
2928
public static readonly deprecateAliases = true;
3029

src/commands/project/deploy/report.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ export default class DeployMetadataReport extends SfCommand<DeployResultJson> {
2323
public static readonly description = messages.getMessage('description');
2424
public static readonly summary = messages.getMessage('summary');
2525
public static readonly examples = messages.getMessages('examples');
26-
public static readonly requiresProject = true;
2726
public static readonly aliases = ['deploy:metadata:report'];
2827
public static readonly deprecateAliases = true;
2928

src/commands/project/deploy/resume.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ export default class DeployMetadataResume extends SfCommand<DeployResultJson> {
2626
public static readonly description = messages.getMessage('description');
2727
public static readonly summary = messages.getMessage('summary');
2828
public static readonly examples = messages.getMessages('examples');
29-
public static readonly requiresProject = true;
3029
public static readonly aliases = ['deploy:metadata:resume'];
3130
public static readonly deprecateAliases = true;
3231

@@ -93,7 +92,17 @@ export default class DeployMetadataResume extends SfCommand<DeployResultJson> {
9392
const wait = flags.wait ?? Duration.minutes(deployOpts.wait);
9493
const { deploy } = await executeDeploy(
9594
// there will always be conflicts on a resume if anything deployed--the changes on the server are not synced to local
96-
{ ...deployOpts, wait, 'dry-run': false, 'ignore-conflicts': true },
95+
{
96+
...deployOpts,
97+
wait,
98+
'dry-run': false,
99+
'ignore-conflicts': true,
100+
// TODO: isMdapi is generated from 'metadata-dir' flag, but we don't have that flag here
101+
// change the cache value to actually cache the metadata-dir, and if there's a value, it isMdapi
102+
// deployCache~L38, so to tell the executeDeploy method it's ok to not have a project, we spoof a metadata-dir
103+
// in deploy~L140, it checks the if the id is present, so this metadata-dir value is never _really_ used
104+
'metadata-dir': deployOpts.isMdapi ? { type: 'file', path: 'testing' } : undefined,
105+
},
97106
this.config.bin,
98107
this.project,
99108
jobId

src/commands/project/deploy/validate.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ export default class DeployMetadataValidate extends SfCommand<DeployResultJson>
3131
public static readonly description = messages.getMessage('description');
3232
public static readonly summary = messages.getMessage('summary');
3333
public static readonly examples = messages.getMessages('examples');
34-
public static readonly requiresProject = true;
3534
public static readonly aliases = ['deploy:metadata:validate'];
3635
public static readonly deprecateAliases = true;
3736

0 commit comments

Comments
 (0)