雑史

思ったこととかメモとか

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で運用していきたい。