publish static method
The stages of build_pipe:publish
Implementation
static List<PipeStage> publish(BPConfig config) {
_HookEnvironment environment = _HookEnvironment(config, "publish");
List<PipeStep> platformSteps = [];
for (TargetPlatform platform in config.publishPlatforms) {
PlatformConfig platformConfig = config.platformConfig(platform)!;
(String, PipeStep Function(String label))? upload = switch (platform) {
TargetPlatform.android => (
"Android - Play Store",
(String label) => platformConfig.androidConfig!.publishConfig!.uploadToPlayStoreStep(config, label: label),
),
TargetPlatform.ios => (
"iOS - App Store",
(String label) => platformConfig.iosConfig!.publishConfig!.uploadToIOSStep(config, label: label),
),
// Only the stores of iOS and Android are supported at the moment
TargetPlatform.macos || TargetPlatform.windows || TargetPlatform.linux || TargetPlatform.web => null,
};
if (upload == null) continue;
PipeStep step = _platformStep(
label: upload.$1,
mainLabel: "Upload",
main: upload.$2,
extraSteps: [],
hooks: platformConfig.publishHooks,
platform: platform,
environment: environment,
);
environment.platformSteps[step] = platform;
platformSteps.add(step);
}
return [
PipeStage(
"Pre-publish",
steps: [
if (config.publishHooks.pre != null) _hookStep("Pre-platform run", config.publishHooks.pre!, environment.forPrePlatformRun),
],
),
PipeStage("Publish", steps: platformSteps, onFailure: FailurePolicy.continueRun),
PipeStage("Post-publish", steps: _postPlatformRunSteps(config.publishHooks, environment)),
];
}