LoginSignup
1
1

More than 1 year has passed since last update.

10分で理解: GitLab CI/CD 上で semantic-release を実行

Posted at

概要

GitLab CI/CD の設定方法 を前回まとめたので、応用編として semantic-release を組み込む。
semantic-release を組み込むと、release branch への Merge Request を作成して merge をしたタイミングで、以下の処理を自動実行できる。

  • semantic versioning に基づいて、バージョン番号の自動更新
  • commit log、バージョン番号をまとめて、GitLab Release への新規バージョンを登録

semantic-release のインストール

参照:Installation | semantic-release

本体と GitLab 用の config をインストールする。

$ yarn add semantic-release @semantic-release/gitlab-config --dev

semantic-release の設定

参照:Configuration | semantic-release

以下のような設定を行う。

  • @semantic-release/gitlab-config をベースとする。本来は、この extends だけを記述すればいいのだが、今回は npm へのパブリッシュは行わないので、以下の plugins に必要な処理を明示している。
  • "release" branch の上で semantic-release を実行する。デフォルトでは main branch 上で実行される。
  • @semantic-release/commit-analyzer: commit log を解析して、semantic versioning に基づいてバージョン番号を決める。
  • @semantic-release/release-notes-generator: 直前のリリース以降の新規 commit log 群からリリースノートの文面を作成する。
  • @semantic-release/gitlab: GitLab Releases に対してパブリッシュを行う。
.releaserc.json
{
    "extends": "@semantic-release/gitlab-config",
    "branches": "release",
    "plugins": [
        "@semantic-release/commit-analyzer",
        "@semantic-release/release-notes-generator",
        "@semantic-release/gitlab"
    ]
}

GitLab CI/CD への組み込み

前回の CI/CD 設定 に追加して、以下の release-job を Pipeline に追加する。

.gitlab-ci.yml
release-job:
    rules:
        - if: $CI_COMMIT_BRANCH == "release"
    stage: deploy         # deploy ステージで実行
    image: node:latest
    script:
        - yarn install
        - npx semantic-release

結果として Pipeline は以下のような構成となる。

image.png

Personalized Access Token の設定

参照:

semantic-release は、git repo への push を行う権限を必要とするので、GitLab の personalized access token を準備する。

GitLab 画面右上のユーザーアイコン > Edit Profile > Access Tokens で、トークンを作成する。
下図にあるように、scope = api のトークンが必要。
image.png

GitLab 画面左のメニュー > Settings > CI/CD > Variables で、環境変数 GITLAB_TOKEN を登録する。

image.png

GitLab 上での動作

Pipeline の状態確認

image.png

GitLab Releases の出力を確認

image.png

詳細情報

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