Store deployer data on auction completion
This commit is contained in:
parent
b15d998ed2
commit
ae20f171a1
@ -175,7 +175,7 @@ export class Service {
|
|||||||
applicationDeploymentRequestId: record.attributes.request,
|
applicationDeploymentRequestId: record.attributes.request,
|
||||||
})),
|
})),
|
||||||
relations: {
|
relations: {
|
||||||
project: true,
|
deployer: true,
|
||||||
},
|
},
|
||||||
order: {
|
order: {
|
||||||
createdAt: 'DESC',
|
createdAt: 'DESC',
|
||||||
@ -206,22 +206,6 @@ export class Service {
|
|||||||
|
|
||||||
await this.db.updateDeploymentById(deployment.id, deployment);
|
await this.db.updateDeploymentById(deployment.id, deployment);
|
||||||
|
|
||||||
const baseDomains = deployment.project.baseDomains || [];
|
|
||||||
|
|
||||||
if (!baseDomains.includes(baseDomain)) {
|
|
||||||
baseDomains.push(baseDomain);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Release deployer funds on successful deployment
|
|
||||||
if (!deployment.project.fundsReleased) {
|
|
||||||
const fundsReleased = await this.releaseDeployerFundsByProjectId(deployment.projectId);
|
|
||||||
|
|
||||||
await this.db.updateProjectById(deployment.projectId, {
|
|
||||||
baseDomains,
|
|
||||||
fundsReleased,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
log(
|
log(
|
||||||
`Updated deployment ${deployment.id} with URL ${record.attributes.url}`,
|
`Updated deployment ${deployment.id} with URL ${record.attributes.url}`,
|
||||||
);
|
);
|
||||||
@ -320,9 +304,41 @@ export class Service {
|
|||||||
// deployers
|
// deployers
|
||||||
// });
|
// });
|
||||||
|
|
||||||
for (const deployer of deployers) {
|
const deployerRecords = await this.laconicRegistry.getAuctionWinningDeployerRecords(project!.auctionId!);
|
||||||
log(`Creating deployment for deployer LRN ${deployer}`);
|
|
||||||
await this.createDeploymentFromAuction(project, deployer.names[0]);
|
if (!deployerRecords) {
|
||||||
|
log(`No winning deployer for auction ${project!.auctionId}`);
|
||||||
|
} else {
|
||||||
|
const deployerLrns = [];
|
||||||
|
const deployerIds = [];
|
||||||
|
|
||||||
|
for (const record of deployerRecords) {
|
||||||
|
const deployerId = record.id;
|
||||||
|
const deployerLrn = record.names[0]
|
||||||
|
const deployerApiUrl = record.attributes.apiUrl;
|
||||||
|
|
||||||
|
deployerIds.push(deployerId);
|
||||||
|
deployerLrns.push(deployerLrn);
|
||||||
|
|
||||||
|
const deployerData = {
|
||||||
|
deployerId,
|
||||||
|
deployerLrn,
|
||||||
|
deployerApiUrl,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Store the deployer in the DB
|
||||||
|
await this.db.addDeployer(deployerData);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update project with deployer LRNs
|
||||||
|
await this.db.updateProjectById(project.id!, {
|
||||||
|
deployerLrns
|
||||||
|
});
|
||||||
|
|
||||||
|
for (const deployer of deployerIds) {
|
||||||
|
log(`Creating deployment for deployer LRN ${deployer}`);
|
||||||
|
await this.createDeploymentFromAuction(project, deployer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -665,7 +681,7 @@ export class Service {
|
|||||||
|
|
||||||
async createDeploymentFromAuction(
|
async createDeploymentFromAuction(
|
||||||
project: DeepPartial<Project>,
|
project: DeepPartial<Project>,
|
||||||
deployerLrn: string
|
deployerId: string
|
||||||
): Promise<Deployment> {
|
): Promise<Deployment> {
|
||||||
const octokit = await this.getOctokit(project.ownerId!);
|
const octokit = await this.getOctokit(project.ownerId!);
|
||||||
const [owner, repo] = project.repository!.split('/');
|
const [owner, repo] = project.repository!.split('/');
|
||||||
@ -691,6 +707,9 @@ export class Service {
|
|||||||
const applicationRecordId = record.id;
|
const applicationRecordId = record.id;
|
||||||
const applicationRecordData = record.attributes;
|
const applicationRecordData = record.attributes;
|
||||||
|
|
||||||
|
const deployer = await this.db.getDeployerById(deployerId);
|
||||||
|
const deployerLrn = deployer!.deployerLrn
|
||||||
|
|
||||||
// Create deployment with prod branch and latest commit
|
// Create deployment with prod branch and latest commit
|
||||||
const deploymentData = {
|
const deploymentData = {
|
||||||
project,
|
project,
|
||||||
@ -701,7 +720,7 @@ export class Service {
|
|||||||
commitMessage: latestCommit.commit.message,
|
commitMessage: latestCommit.commit.message,
|
||||||
};
|
};
|
||||||
|
|
||||||
const newDeployment = await this.createDeploymentFromData(project.ownerId!, deploymentData, deployerLrn, applicationRecordId, applicationRecordData);
|
const newDeployment = await this.createDeploymentFromData(project.ownerId!, deploymentData, deployerId, applicationRecordId, applicationRecordData);
|
||||||
|
|
||||||
const environmentVariablesObj = await this.getEnvVariables(project!.id!);
|
const environmentVariablesObj = await this.getEnvVariables(project!.id!);
|
||||||
// To set project DNS
|
// To set project DNS
|
||||||
|
Loading…
Reference in New Issue
Block a user