LoginSignup
2
0

More than 5 years have passed since last update.

itamaeのgitリソースでエラーが起きたからメモ

Posted at

itamaeのgitリソースを実行したところ「deployブランチがすでに存在しているためcheckoutできませんでした」という旨のエラーが出ました。

その原因を調べたのでメモとして残しておきます。

エラーの原因

itamaeでgitリソースを実行するときに以下をともに満たしている場合、deploy branch already existという内容のエラーが発生します。

  • checkoutしているブランチがdeployブランチ以外(masterとか)
  • deployブランチはすでに存在している

コードを見てみるとわかりますが、基本的にdeployブランチにcheckoutした状態で実行しないといけないようです。

gitリソースの挙動

ざっくりいうと以下の順でリモートのソースコードを同期するようです。

  1. deployブランチをdeploy-oldブランチにrename
  2. git fetch(このときrevisionオプションを渡していないと常に最新のソースコードを取得する)
  3. deployブランチを作成してdeployブランチにチェックアウト
  4. deploy-oldブランチを削除

deployブランチ以外のブランチにcheckoutした状態で実行すると、以下の分岐に入らずdeployブランチがrenameされません。

その結果上記エラーが発生してしまいます。

if current_branch == DEPLOY_BRANCH
  run_command_in_repo("git branch -m deploy-old")
  deploy_old_created = true
end

というわけで、deployブランチにcheckoutしたところ正しく動作しました。

以上、メモでした。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0