Fix deployment running indefinetly on some error
This commit is contained in:
@@ -36,6 +36,17 @@ func NewDeploySiteHandler(
|
||||
}
|
||||
}
|
||||
|
||||
func failDeployment(deployId string, repo repository.DeploymentRepository) {
|
||||
deployUpdateErr := repo.UpdateDeploymentStatus(deployId, models.DeploymentStatusFailed)
|
||||
if deployUpdateErr != nil {
|
||||
log.Println("Error updating deployment status to failed: ", deployUpdateErr)
|
||||
}
|
||||
deployUpdateErr = repo.UpdateDeploymentFinishTime(deployId, time.Now().UTC())
|
||||
if deployUpdateErr != nil {
|
||||
log.Println("Error updating deployment finish time: ", deployUpdateErr)
|
||||
}
|
||||
}
|
||||
|
||||
func (h *DeploySiteHandler) PostDeploy(c fiber.Ctx) error {
|
||||
siteId := c.Query("site")
|
||||
if siteId == "" {
|
||||
@@ -124,6 +135,7 @@ func (h *DeploySiteHandler) PostDeploy(c fiber.Ctx) error {
|
||||
|
||||
if err != nil {
|
||||
log.Println("Error creating deployment: ", err)
|
||||
failDeployment(deployId, h.DeploymentRepo)
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(&models.APIError{
|
||||
Message: "Failed to create deployment",
|
||||
})
|
||||
@@ -131,6 +143,7 @@ func (h *DeploySiteHandler) PostDeploy(c fiber.Ctx) error {
|
||||
|
||||
provider, err := gitprovider.NewProvider(gitServer.Type, gitServer.Protocol, gitServer.BaseUrl, gitServer.AuthToken)
|
||||
if err != nil {
|
||||
failDeployment(deployId, h.DeploymentRepo)
|
||||
return c.Status(400).JSON(models.APIError{
|
||||
Message: "Unsupported git provider: " + gitServer.Type,
|
||||
})
|
||||
@@ -152,15 +165,7 @@ func (h *DeploySiteHandler) PostDeploy(c fiber.Ctx) error {
|
||||
|
||||
if err != nil {
|
||||
log.Println("Error deploying site: ", err)
|
||||
|
||||
deployUpdateErr := h.DeploymentRepo.UpdateDeploymentStatus(deployId, models.DeploymentStatusFailed)
|
||||
if deployUpdateErr != nil {
|
||||
log.Println("Error updating deployment status to failed: ", err)
|
||||
}
|
||||
deployUpdateErr = h.DeploymentRepo.UpdateDeploymentFinishTime(deployId, time.Now().UTC())
|
||||
if deployUpdateErr != nil {
|
||||
log.Println("Error updating deployment finish time: ", err)
|
||||
}
|
||||
failDeployment(deployId, h.DeploymentRepo)
|
||||
|
||||
return c.Status(500).JSON(models.APIError{
|
||||
Message: "Failed to deploy site: " + err.Error(),
|
||||
|
||||
Reference in New Issue
Block a user