BacklogからGitLabに移行した
はじめに
社内で、ずっとBacklogを使ってたのだが、GitLab使いやすくね?となったのでサラッと移行した。
やったこと
- リポジトリの移行
- コミット履歴は引き継ぐ
- 自動デプロイ部分をJenkinsに頼っていたところをGitLabCIにやらせる
リポジトリの移行
以下記事を参考にした
【Git】リポジトリをそのまま別の管理ツールへ移行する方法(Backlog→GitLab を例に)
4年くらい前の記事だが何も問題はなかった。これでリモートリポジトリはGitLabになった。
自動デプロイ
ここがかなり苦戦した。苦戦ポイントは以下。
- そもそもデプロイが走らない
- CIと言っても自動デプロイしかしない参考が少ない
- デプロイ後のブランチを確認すると以下が出る
$ git branch * (detached from {#commit id}) develop master
解決方法
デプロイが走らない問題
色々と以下対応。
- gitのバージョンを2.x系にアップグレード
- 変更のあるディレクトリの書き込み権限をgitlab-runnerユーザーに与える
git fetch-pack: expected shallow list
の対応
デプロイ後のブランチ問題
今回のpush先はdevelopブランチだったため、割と強引に解決。
解決するためのgitlab-ci.ymlが以下
stages: - deploy deploy_dev: stage: deploy tags: - develop-deploy only: - develop environment: name: develop script: - pwd - origin=$(pwd) - cd /path/to/project - pwd - \cp -rf "${origin}/." . - git branch -d develop - git checkout -b develop
cpしていることが色々な原因なんだろうけど、今の知識と移行スピード考えるととりあえずのこの対応しかできなかった。。。 折を見てgitlab-runner用のサーバを立ててdockerで運用していきたい。