@netlify/build
Version:
Netlify build module
60 lines (59 loc) • 2.02 kB
JavaScript
// eslint-disable-next-line n/no-missing-import
import { saveUpdatedConfig, restoreUpdatedConfig } from '../../core/config.js';
import { logDeploySuccess } from '../../log/messages/plugins.js';
import { createBuildbotClient, connectBuildbotClient, closeBuildbotClient, deploySiteWithBuildbotClient, } from './buildbot_client.js';
const coreStep = async function ({ buildDir, configPath, deployEnvVars, repositoryRoot, constants, buildbotServerSocket, events, logs, featureFlags, context, branch, configMutations, headersPath, redirectsPath, debug, saveConfig, }) {
const client = createBuildbotClient(buildbotServerSocket);
try {
// buildbot will emit logs. Flush the output to preserve the right order.
logs?.outputFlusher?.flush();
await connectBuildbotClient(client);
await saveUpdatedConfig({
configMutations,
buildDir,
repositoryRoot,
configPath,
headersPath,
redirectsPath,
logs,
featureFlags,
context,
branch,
debug,
saveConfig,
});
await deploySiteWithBuildbotClient({
client,
environment: deployEnvVars,
events,
buildDir,
repositoryRoot,
constants,
});
await restoreUpdatedConfig({
configMutations,
buildDir,
repositoryRoot,
configPath,
headersPath,
redirectsPath,
saveConfig,
});
logDeploySuccess(logs);
return {};
}
finally {
await closeBuildbotClient(client);
}
};
export const shouldDeploy = function ({ buildbotServerSocket }) {
return buildbotServerSocket !== undefined;
};
export const deploySite = {
event: 'onPostBuild',
coreStep,
coreStepId: 'deploy_site',
coreStepName: 'Deploy site',
coreStepDescription: () => 'Deploy site',
condition: shouldDeploy,
};