pipecd icon indicating copy to clipboard operation
pipecd copied to clipboard

Deployment fails when the application git branch is changed

Open kentakozuka opened this issue 2 years ago • 4 comments

What happened:

Deployment fails when the application git branch is changed.

What you expected to happen:

No failure

How to reproduce it:

  1. branch: launch PipeCD Agent for v2
  2. ADD the application
  3. Modify PipeCD Agent configuration (branch: main)
  4. Verify that changes in main branch can be deployed
  5. Delete branch: v2
  6. The change in main branch is detected and deployed successfully
  7. Restart PipeCD Agent
  8. Main branch changes are detected, but deploy fails

Environment:

  • piped version:
  • control-plane version:
  • Others:
jsonPayload: {
branch: "v2"
caller: "git/client.go:191"
error: "exit status 128"
eventTime: 1697503936.6423886
logger: "piped.piped"
message: "failed to clone from local"
out: "Cloning into '/tmp/workspace4070547661/fbd286cb-20ee-4c7b-8920-69663c42f6bd-planner-1664305497/target-deploysource/deploysource2595605295/repo'...
fatal: Remote branch v2 not found in upstream origin
"
remote: "[email protected]:kentakozuka/pipecd-play.git"
repo-id: "pipecd-play"
repo-path: "/tmp/workspace4070547661/fbd286cb-20ee-4c7b-8920-69663c42f6bd-planner-1664305497/target-deploysource/deploysource2595605295/repo"
serviceContext: {2}
stacktrace: "github.com/pipe-cd/pipecd/pkg/git.(*client).Clone
	/home/runner/work/pipecd/pipecd/pkg/git/client.go:191
github.com/pipe-cd/pipecd/pkg/app/piped/deploysource.(*gitSourceCloner).Clone
	/home/runner/work/pipecd/pipecd/pkg/app/piped/deploysource/sourcecloner.go:59
github.com/pipe-cd/pipecd/pkg/app/piped/deploysource.(*provider).prepare
	/home/runner/work/pipecd/pipecd/pkg/app/piped/deploysource/deploysource.go:146
github.com/pipe-cd/pipecd/pkg/app/piped/deploysource.(*provider).Get
	/home/runner/work/pipecd/pipecd/pkg/app/piped/deploysource/deploysource.go:92
github.com/pipe-cd/pipecd/pkg/app/piped/planner/kubernetes.(*Planner).Plan
	/home/runner/work/pipecd/pipecd/pkg/app/piped/planner/kubernetes/kubernetes.go:56
github.com/pipe-cd/pipecd/pkg/app/piped/controller.(*planner).Run
	/home/runner/work/pipecd/pipecd/pkg/app/piped/controller/planner.go:202
github.com/pipe-cd/pipecd/pkg/app/piped/controller.(*controller).startNewPlanner.func2
	/home/runner/work/pipecd/pipecd/pkg/app/piped/controller/controller.go:499"
}
labels: {4}
logName: "projects/pipecd/logs/stderr"
receiveTimestamp: "2023-10-17T00:52:21.597267065Z"
resource: {2}
severity: "ERROR"
timestamp: "2023-10-17T00:52:16.653773215Z"
}

kentakozuka avatar Oct 17 '23 00:10 kentakozuka

When deployment is triggered, application git config is used, which references the removed v2 branch. https://github.com/pipe-cd/pipecd/blob/master/pkg/app/piped/trigger/deployment.go#L95

kentakozuka avatar Oct 19 '23 00:10 kentakozuka

Note: Latest work on this is #4739 but it looks like a breaking change, we need to investigate the effect area from this approach

khanhtc1202 avatar Apr 18 '24 06:04 khanhtc1202