فهرست منبع

fix pr env delete from CLI and action

Mohammed Nafees 4 سال پیش
والد
کامیت
2fde1af40c

+ 3 - 4
api/client/environment.go

@@ -109,13 +109,12 @@ func (c *Client) FinalizeDeployment(
 
 func (c *Client) DeleteDeployment(
 	ctx context.Context,
-	projID, clusterID uint,
-	envID, gitRepoOwner, gitRepoName, prNumber string,
+	projID, clusterID, deploymentID uint,
 ) error {
 	return c.deleteRequest(
 		fmt.Sprintf(
-			"/projects/%d/clusters/%d/deployments/%s/%s/%s/%s",
-			projID, clusterID, envID, gitRepoOwner, gitRepoName, prNumber,
+			"/projects/%d/clusters/%d/deployments/%d",
+			projID, clusterID, deploymentID,
 		),
 		nil, nil,
 	)

+ 1 - 4
api/server/handlers/webhook/github_incoming.go

@@ -131,10 +131,7 @@ func (c *GithubIncomingWebhookHandler) processPullRequestEvent(event *github.Pul
 					github.CreateWorkflowDispatchEventRequest{
 						Ref: event.PullRequest.GetHead().GetRef(),
 						Inputs: map[string]interface{}{
-							"environment_id": strconv.FormatUint(uint64(depl.EnvironmentID), 10),
-							"repo_owner":     owner,
-							"repo_name":      repo,
-							"pr_number":      strconv.FormatUint(uint64(event.PullRequest.GetNumber()), 10),
+							"deployment_id": strconv.FormatUint(uint64(depl.ID), 10),
 						},
 					},
 				)

+ 10 - 25
cli/cmd/delete.go

@@ -4,6 +4,7 @@ import (
 	"context"
 	"fmt"
 	"os"
+	"strconv"
 
 	"github.com/fatih/color"
 	api "github.com/porter-dev/porter/api/client"
@@ -112,38 +113,22 @@ func delete(_ *types.GetAuthenticatedUserResponse, client *api.Client, args []st
 		return fmt.Errorf("cluster id must be set")
 	}
 
-	var environmentID string
-	var gitRepoName string
-	var gitRepoOwner string
-	var gitPRNumber string
+	var deploymentID uint
 
-	if envID := os.Getenv("PORTER_ENVIRONMENT_ID"); envID != "" {
-		environmentID = envID
-	} else {
-		return fmt.Errorf("Environment ID must be defined, set by PORTER_ENVIRONMENT_ID")
-	}
-
-	if repoName := os.Getenv("PORTER_REPO_NAME"); repoName != "" {
-		gitRepoName = repoName
-	} else {
-		return fmt.Errorf("Repo name must be defined, set by PORTER_REPO_NAME")
-	}
+	if deplIDStr := os.Getenv("PORTER_DEPLOYMENT_ID"); deplIDStr != "" {
+		deplID, err := strconv.ParseUint(deplIDStr, 10, 32)
 
-	if repoOwner := os.Getenv("PORTER_REPO_OWNER"); repoOwner != "" {
-		gitRepoOwner = repoOwner
-	} else {
-		return fmt.Errorf("Repo owner must be defined, set by PORTER_REPO_OWNER")
-	}
+		if err != nil {
+			return fmt.Errorf("error parsing deployment ID: %s", deplIDStr)
+		}
 
-	if prNumber := os.Getenv("PORTER_PR_NUMBER"); prNumber != "" {
-		gitPRNumber = prNumber
+		deploymentID = uint(deplID)
 	} else {
-		return fmt.Errorf("Pull request number must be defined, set by PORTER_PR_NUMBER")
+		return fmt.Errorf("Deployment ID must be defined, set by PORTER_DEPLOYMENT_ID")
 	}
 
 	return client.DeleteDeployment(
-		context.Background(), projectID, clusterID, environmentID,
-		gitRepoOwner, gitRepoName, gitPRNumber,
+		context.Background(), projectID, clusterID, deploymentID,
 	)
 }
 

+ 2 - 17
internal/integrations/ci/actions/preview.go

@@ -290,23 +290,8 @@ func getPreviewDeleteActionYAML(opts *EnvOpts) ([]byte, error) {
 		On: map[string]interface{}{
 			"workflow_dispatch": map[string]interface{}{
 				"inputs": map[string]interface{}{
-					"environment_id": map[string]interface{}{
-						"description": "Environment ID",
-						"type":        "number",
-						"required":    true,
-					},
-					"repo_owner": map[string]interface{}{
-						"description": "Repository owner",
-						"type":        "string",
-						"required":    true,
-					},
-					"repo_name": map[string]interface{}{
-						"description": "Repository name",
-						"type":        "string",
-						"required":    true,
-					},
-					"pr_number": map[string]interface{}{
-						"description": "Pull request number",
+					"deployment_id": map[string]interface{}{
+						"description": "Deployment ID",
 						"type":        "number",
 						"required":    true,
 					},

+ 5 - 8
internal/integrations/ci/actions/steps.go

@@ -74,14 +74,11 @@ func getDeletePreviewEnvStep(serverURL, porterTokenSecretName string, projectID,
 		Name: "Delete Porter preview env",
 		Uses: fmt.Sprintf("%s@%s", deletePreviewActionName, actionVersion),
 		With: map[string]string{
-			"cluster":        fmt.Sprintf("%d", clusterID),
-			"host":           serverURL,
-			"project":        fmt.Sprintf("%d", projectID),
-			"token":          fmt.Sprintf("${{ secrets.%s }}", porterTokenSecretName),
-			"environment_id": "${{ github.event.inputs.environment_id }}",
-			"repo_owner":     "${{ github.repository_owner }}",
-			"repo_name":      repoName,
-			"pr_number":      "${{ github.event.inputs.pr_number }}",
+			"cluster":       fmt.Sprintf("%d", clusterID),
+			"host":          serverURL,
+			"project":       fmt.Sprintf("%d", projectID),
+			"token":         fmt.Sprintf("${{ secrets.%s }}", porterTokenSecretName),
+			"deployment_id": "${{ github.event.inputs.deployment_id }}",
 		},
 		Timeout: 30,
 	}