feat: save application data before deploying

This commit is contained in:
Andras Bacsai
2022-11-30 15:40:27 +01:00
parent 9913e7b70b
commit 76373a8597
9 changed files with 41 additions and 31 deletions

View File

@@ -301,8 +301,7 @@ import * as buildpacks from '../lib/buildPacks';
}
try {
await executeDockerCmd({ debug, buildId, applicationId, dockerId: destinationDocker.id, command: `docker compose --project-directory ${workdir} up -d` })
await saveBuildLog({ line: 'Deployment successful!', buildId, applicationId });
await saveBuildLog({ line: 'Proxy will be updated shortly.', buildId, applicationId });
await saveBuildLog({ line: '[DEPLOYMENT] Successful! 🎉', buildId, applicationId });
await prisma.build.update({ where: { id: buildId }, data: { status: 'success' } });
await prisma.application.update({
where: { id: applicationId },
@@ -363,7 +362,7 @@ import * as buildpacks from '../lib/buildPacks';
//
}
try {
await saveBuildLog({ line: 'Deployment started.', buildId, applicationId });
await saveBuildLog({ line: '[DEPLOYMENT] Deployment initiated.', buildId, applicationId });
const composeVolumes = volumes.map((volume) => {
return {
[`${volume.split(':')[0]}`]: {
@@ -395,7 +394,7 @@ import * as buildpacks from '../lib/buildPacks';
};
await fs.writeFile(`${workdir}/docker-compose.yml`, yaml.dump(composeFile));
await executeDockerCmd({ dockerId: destinationDocker.id, command: `docker compose --project-directory ${workdir} up -d` })
await saveBuildLog({ line: 'Deployment successful!', buildId, applicationId });
await saveBuildLog({ line: '[DEPLOYMENT] Successful! 🎉', buildId, applicationId });
} catch (error) {
await saveBuildLog({ line: error, buildId, applicationId });
const foundBuild = await prisma.build.findUnique({ where: { id: buildId } })
@@ -409,7 +408,6 @@ import * as buildpacks from '../lib/buildPacks';
}
throw new Error(error);
}
await saveBuildLog({ line: 'Proxy will be updated shortly.', buildId, applicationId });
await prisma.build.update({ where: { id: buildId }, data: { status: 'success' } });
if (!pullmergeRequestId) await prisma.application.update({
where: { id: applicationId },

View File

@@ -641,9 +641,9 @@ export async function buildImage({
commit
}) {
if (isCache) {
await saveBuildLog({ line: `Building cache image started.`, buildId, applicationId });
await saveBuildLog({ line: `[CACHE] Building cache image.`, buildId, applicationId });
} else {
await saveBuildLog({ line: `Building image started.`, buildId, applicationId });
await saveBuildLog({ line: `[PRODUCTION] Building production image.`, buildId, applicationId });
}
if (!debug) {
await saveBuildLog({
@@ -667,12 +667,12 @@ export async function buildImage({
const { status } = await prisma.build.findUnique({ where: { id: buildId } })
if (status === 'canceled') {
throw new Error('Deployment canceled.')
throw new Error('[DEPLOYMENT] Canceled!!!')
}
if (isCache) {
await saveBuildLog({ line: `Building cache image successful.`, buildId, applicationId });
await saveBuildLog({ line: `[CACHE] Successful! 🎉`, buildId, applicationId });
} else {
await saveBuildLog({ line: `Building image successful.`, buildId, applicationId });
await saveBuildLog({ line: `[PRODUCTION] Successful! 🎉`, buildId, applicationId });
}
}

View File

@@ -1535,7 +1535,7 @@ export async function stopBuild(buildId, applicationId) {
scheduler.workers.get('deployApplication').postMessage('cancel');
}
await cleanupDB(buildId, applicationId);
return reject(new Error('Deployment canceled.'));
return reject(new Error('[DEPLOYMENT] Canceled!!!'));
}
const { stdout: buildContainers } = await executeDockerCmd({
dockerId,
@@ -1568,7 +1568,7 @@ async function cleanupDB(buildId: string, applicationId: string) {
if (data?.status === 'queued' || data?.status === 'running') {
await prisma.build.update({ where: { id: buildId }, data: { status: 'canceled' } });
}
await saveBuildLog({ line: 'Deployment canceled.', buildId, applicationId });
await saveBuildLog({ line: '[DEPLOYMENT] Canceled!!!', buildId, applicationId });
}
export function convertTolOldVolumeNames(type) {

View File

@@ -30,16 +30,16 @@ export default async function ({
}): Promise<string> {
const { default: got } = await import('got')
const url = htmlUrl.replace('https://', '').replace('http://', '');
await saveBuildLog({ line: 'GitHub importer started.', buildId, applicationId });
await saveBuildLog({ line: '[IMPORTER] Warming up GitHub importer.', buildId, applicationId });
if (forPublic) {
await saveBuildLog({
line: `Cloning ${repository}:${branch} branch.`,
line: `[IMPORTER] Cloning ${repository}:${branch} branch.`,
buildId,
applicationId
});
if (gitCommitHash) {
await saveBuildLog({
line: `Checking out ${gitCommitHash} commit.`,
line: `[IMPORTER] Checking out ${gitCommitHash} commit.`,
buildId,
applicationId
});
@@ -71,13 +71,13 @@ export default async function ({
})
.json();
await saveBuildLog({
line: `Cloning ${repository}:${branch} branch.`,
line: `[IMPORTER] Cloning ${repository}:${branch} branch.`,
buildId,
applicationId
});
if (gitCommitHash) {
await saveBuildLog({
line: `Checking out ${gitCommitHash} commit.`,
line: `[IMPORTER] Checking out ${gitCommitHash} commit.`,
buildId,
applicationId
});

View File

@@ -27,7 +27,7 @@ export default async function ({
forPublic: boolean;
}): Promise<string> {
const url = htmlUrl.replace('https://', '').replace('http://', '').replace(/\/$/, '');
await saveBuildLog({ line: 'GitLab importer started.', buildId, applicationId });
await saveBuildLog({ line: '[IMPORTER] Warming up GitLab importer.', buildId, applicationId });
if (!forPublic) {
await asyncExecShell(`echo '${privateSshKey}' > ${repodir}/id.rsa`);
@@ -35,13 +35,13 @@ export default async function ({
}
await saveBuildLog({
line: `Cloning ${repository}:${branch} branch.`,
line: `[IMPORTER] Cloning ${repository}:${branch} branch.`,
buildId,
applicationId
});
if (gitCommitHash) {
await saveBuildLog({
line: `Checking out ${gitCommitHash} commit.`,
line: `[IMPORTER] Checking out ${gitCommitHash} commit.`,
buildId,
applicationId
});