pipecd
pipecd copied to clipboard
Deployment fails when the application git branch is changed
What happened:
Deployment fails when the application git branch is changed.
What you expected to happen:
No failure
How to reproduce it:
- branch: launch PipeCD Agent for v2
- ADD the application
- Modify PipeCD Agent configuration (branch: main)
- Verify that changes in main branch can be deployed
- Delete branch: v2
- The change in main branch is detected and deployed successfully
- Restart PipeCD Agent
- Main branch changes are detected, but deploy fails
Environment:
-
pipedversion: -
control-planeversion: - 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"
}
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
Note: Latest work on this is #4739 but it looks like a breaking change, we need to investigate the effect area from this approach