152
128

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Gitlab-flowのグラフ

gitlab-flow.png

Gitlab-flowのブランチ説明

  • feature/hotfixは機能開発、不具合対応ブランチです
  • masterはメインのブランチ
  • pre-production(オプションブランチ)はリリース前のテスト用(git-flowで言うreleaseブランチ)
  • productionはリリース済みのコード置き場

Gitlab-flowの流れ

機能開発

  1. 機能開発するとき、masterブランチからfeature/NAMEブランチを切って開発進む
  2. 開発が終わったらfeatureブランチからmasterにMerge Requestを作成します。
  3. masterをステージング環境へデプロイして、確認する
  4. プリプロダクションへデプロイしたい場合、masterブランチからpre-productionブランチへのMerge Requestを作成します。マージ済みになるとデプロイする
  5. pre-productionブランチからproductionブランチへのMerge Requestを作成します。マージ済みになるとデプロイする

不具合対応

  1. 不具合があるとき、masterブランチからhotfix/NAMEブランチを切って対応を行う
  • 対応が終わったら、hotfixブランチからmasterにMerge Requestを作成します。
  • masterをステージング環境へデプロイして、確認する
  • 確認して、問題がなければhotfixブランチを順次pre-production > production にマージ

注意事項

  • masterに直接コミットしない
  • featureが長生きする場合はmasterから適度にマージするのを忘れずに
  • featureブランチはmasterにマージした後、削除する
  • hotfixブランチは全てのブランチにマージしたら削除する

メリット・デメリット

メリット

  • コミットがダウンストリームへ流れるのですべての環境で全てテスト済みであることを保証します
  • CIはサポートされる
    • Gitlabはcontinuous integrationサービスを提供する。CIサービスを設定手順は下記に通りです
      1. リポジトリに.gitlab-ci.ymlを追加する。
        • .gitlab-ci.ymlはjobを定義するファイルです。
      2. プロジェクトにRunnerの利用を設定する
        • Runnerは.gitlab-ci.ymlに定義するjobを実行するバーチャルマシンです。
    • CIを設定すると、リポジトリにpush,commitする際に、パイプラインのjobを実行される。
      • 例えば:build → 自動テスト → デプロイ
    • jobの実行状態の管理も提供するので、とても便利です。
    • 参照リンクGetting started with GitLab CI
  • CIを使ってlatestステータスで、現在環境ごとにどんなブランチをデプロイされるの確認もやりやすい。

デメリット

  • 複雑(git-flowと同じ)
  • CIが便利ですが、自動実行なのでもし誤commit、pushすると環境にデプロイしちゃう。

#お試しのリポジトリ

構成

  • ブランチ
    • master
    • pre-production
    • production
  • CI
    • .gitlab-ci.ymlファイル

      .gitlab-ci.yml
       before_script:
        - echo "ジョブを実行する前の準備コマンド"
      
       test:
        script:
         - echo "テスト実施コマンド"
      
       staging:
        type: deploy
        script:
         - echo "ステージング環境にデプロイするコマンド"
        only:
         - master
      
       pre-production:
        type: deploy
        script:
         - echo "pre-production環境にデプロイするコマンド"
        only:
         - pre-production
      
       production:
        type: deploy
        script:
         - echo "本番環境にデプロイするコマンド"
        only:
         - tags
      
      
      • jobの説明
        • before_script: jobを実行する前の準備
        • test job:
          • 内容:(仮)単体テスト実施
          • 実行する条件: 全てのブランチにpush,commitする際に実行する
        • staging job:
          • 内容:(仮)ステージング環境にデプロイ
          • 実行する条件: masterブランチのみにpush,commitの際に実行する
        • pre-production job:
          • 内容:(仮)pre-production環境にデプロイ
          • 実行する条件: pre-productionブランチのみにpush,commitの際に実行する
        • production:
          • 内容:(仮)production環境にデプロイ
          • 実行する条件: タグ付けの際に実行する
152
128
1

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
152
128

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?