fix(agent-ops): release ref prune를 보강한다
명시 ref fetch만으로는 삭제된 release tracking ref가 남을 수 있어 remote namespace prune을 별도 계약으로 고정한다.
This commit is contained in:
parent
0e17a9d9ec
commit
8842733103
2 changed files with 3 additions and 2 deletions
|
|
@ -53,7 +53,7 @@ dev-runtime provider pool을 `dev` 기준 git-flow release로 배포한다. `dev
|
|||
- [ ] 현재 구현의 completion 검증 대상은 legacy `/v1/completions`가 아니라 `/v1/chat/completions`이다. `/v1/completions`는 route가 구현되어 있을 때만 별도 검증한다.
|
||||
- [ ] 원격 runner에 git-flow가 설치되어 있고 `gitflow.branch.master=main`, `gitflow.branch.develop=dev`, `gitflow.prefix.release=release/`인지 확인한다.
|
||||
- [ ] shallow clone이 아니며 `origin/dev`, `origin/main`, tag를 fetch할 수 있는지 확인한다.
|
||||
- [ ] For a deployment that first merges a feature source into `dev`, run `git fetch --prune origin dev main <feature> --tags` and require the recorded exact feature SHA to match the fetched remote feature SHA. For a regular `dev` deployment, run `git fetch --prune origin dev main --tags`.
|
||||
- [ ] For a deployment that first merges a feature source into `dev`, run `git fetch --prune origin dev main <feature> --tags`, then `git remote prune origin`, and require the recorded exact feature SHA to match the fetched remote feature SHA. For a regular `dev` deployment, run `git fetch --prune origin dev main --tags`, then `git remote prune origin`.
|
||||
- [ ] Use `git ls-remote --heads origin 'refs/heads/release/*'` as the authoritative remote release-head check. Treat stale local remote-tracking refs removed by prune as cleanup evidence, not as remote release blockers.
|
||||
- [ ] `origin/main`이 `origin/dev`의 ancestor인지 확인한다. 아니면 배포하지 않고 branch 정합화를 먼저 요구한다.
|
||||
- [ ] 계산된 tag가 이미 local이나 origin에 있으면 삭제·이동·덮어쓰기하지 않고 완료 상태 또는 partial finish 상태를 보고한다.
|
||||
|
|
@ -68,7 +68,7 @@ dev-runtime provider pool을 `dev` 기준 git-flow release로 배포한다. `dev
|
|||
- 필수 정보가 없거나 서로 충돌하면 배포를 시작하지 말고 누락/충돌 항목을 보고한다.
|
||||
|
||||
2. **dev clean sync와 release version 확정**
|
||||
- Run `git fetch --prune origin dev main --tags` in the remote runner checkout, then clean-sync local `dev` to `origin/dev`. When the deployment first merges a feature source, fetch the exact feature ref with `git fetch --prune origin dev main <feature> --tags`.
|
||||
- Run `git fetch --prune origin dev main --tags` in the remote runner checkout, then `git remote prune origin`, and clean-sync local `dev` to `origin/dev`. When the deployment first merges a feature source, fetch the exact feature ref with `git fetch --prune origin dev main <feature> --tags` before pruning the remote-tracking namespace.
|
||||
- Determine active remote releases only from the authoritative output of `git ls-remote --heads origin 'refs/heads/release/*'`. Record changes to local `refs/remotes/origin/release/*` before and after prune only as stale-ref cleanup evidence.
|
||||
- dirty 파일은 보존 대상으로 보지 않는다. 배포 전 clean 상태를 만든다.
|
||||
- 기본 cleanup은 `git clean -fd`이다. `git clean -fdx`는 config, token, secret, runtime artifact까지 삭제할 수 있으므로 사용하지 않는다.
|
||||
|
|
|
|||
|
|
@ -476,6 +476,7 @@ class BenchmarkSkillContractTest(unittest.TestCase):
|
|||
]
|
||||
self.assertEqual(keys, ["name", "description"])
|
||||
self.assertIn("git fetch --prune origin dev main <feature> --tags", content)
|
||||
self.assertIn("git remote prune origin", content)
|
||||
self.assertIn(
|
||||
"git ls-remote --heads origin 'refs/heads/release/*'",
|
||||
content,
|
||||
|
|
|
|||
Loading…
Reference in a new issue