0
1

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 CIでGitのブランチを自動生成

Last updated at Posted at 2019-09-12

はじめに

どうも!生産技術部のエンジニアです。GitLab CIを使って、masterブランチにpushが行われた際にブランチを自動生成するスクリプトを作成しましたので、紹介します。

GitLabサーバを一から構築される方は、以下からご覧ください。
「proxy環境下でDocker Composeを用いてCentOS7上にGitLab Dockerを作成」

環境

  • CentOS : 7.6.18.10
  • Docker-CE : 19.03.1
  • Docker Compose : 1.25.0-rc2
  • GitLab-CE Docker : 12.2.0-ce.0
  • GitLab Runner Docker: 12.2.0

前提条件

GitLab、GitLab Runnerの導入が実施済みであること。

「proxy環境下でDocker Composeを用いてCentOS7上にGitLab Dockerを作成」
「Docker Composeを用いてCentOS7上でGitLab Runner Dockerを作成」
を参考に導入してください。

サービス用のアカウント作成

シェルスクリプトからgitコマンドを実施する際に、リポジトリに対するアクセス権がないユーザからgit pushを実施しようとするとエラーが発生し、失敗します。そこでスクリプトからコマンドが使えるように、サービス用のアカウントを作成します。サービス用のアカウントから、全てのリポジトリにアクセスできるようにAdmin Area->Overview->UsersからAdmin権限を付与しておきます。

今回作成するアカウントは、
User Name : GitlabRunner
Password : gitlabrunner
Email Address : gitlab@service.example.com
とします。これは一例です。

Gitのブランチを自動生成するスクリプト

gitlab-ci.ymlGitLab公式ドキュメントを参考に作成し、pre-releaseステージで本題のブランチ自動生成を行なっていきます。pre-release.shが実行できるように、chmodを用いて実行権限を付与します。

gitlab-ci.yml
stages:
  - build
  - test
  - pre-release
  - deploy

job 1:
  stage: build
  script: echo "build"

job 2:
  stage: test
  script: echo "test"

job 3:
  stage: pre-release
  script: 
    - chmod u+x pre-release.sh
    - ./pre-release.sh
  only:
    master

job 4:
  stage: deploy
  script: echo "deploy"

pre-release.shgit pushが正常で行えるようにuser.nameuser.emailを設定します。ログイン時のユーザ確認、パスワード入力を不要にするため、set-urlにユーザ名、パスワードを設定します。CI_REPOSITORY_URLを使用する事で、リポジトリのURLを省略出来ます。

pre-release.sh
#!/bin/bash
git config --global user.name "GitlabRunner"
git config --global user.email gitlab@service.example.com
git remote set-url origin http://GitlabRunner:gitlabrunner@${CI_REPOSITORY_URL#*@}
git branch -d pre-release
git checkout -b pre-release
git push -u origin pre-release

最後に

ブランチを生成するスクリプトを作成しました。Gitサーバの運用に関して、まだまだ準備が必要そうなので、徐々に整えていこうと思います。

ご参考

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?