みなさん composer update していますか?
ってことで以前
という記事を書いたのですが、今回は GitLab CI で継続的に composer update するようにしてみました。
パッケージ紹介
GitLab CI でも簡単に composer update ができる gitlabci-composer-update-mr というパッケージを作成しました。
不具合などありましたら PR ください!
使い方
1. アクセストークンの発行
まずはアクセストークンを発行します。
GitLab の右上の自分のアイコンから Setting を押して、Access Tokens を選択します。
Name に適当な名前をつけ、Expires at は有効期限なのでここでは空にします。
Scopes で api を選択し、そのまま作成します。
作成するとアクセストークンが表示されるのでメモっておいてください。
2. アクセストークンの設定
composer update を行いたいプロジェクトのページに移動します。
画面左側のナビゲーターから CI/CD を選択し、Environment variables のアコーディオンを開くと、環境変数を設定できるフォームが表示されます。
key に GITLAB_API_PRIVATE_TOKEN
を入力し、value には先ほどメモったアクセストークンを入力します。
(Protected を選択すると Protected branch の CI でしか環境変数を使用できなくなるので、ここでは Protected は選択しません)
Save ボタンを押して保存したら、アクセストークンの設定は完了です。
3. .gitlab-ci.yml の編集
次は CI の設定を記述している .gitlab-ci.yml を編集していきます。
job:on-schedule: image: composer:latest only: - schedules script: - "composer global require enomotodev/gitlabci-composer-update-mr" - "$COMPOSER_HOME/vendor/bin/gitlabci-composer-update-mr ユーザ名 メールアドレス ブランチ名"
こんな感じで書きます。(job:on-schedule
には好きなものを入れてください)
注意点としては、テストなど他のジョブが書かれている場合は他のジョブは全て
other_job: except: - schedules script: # snip
のような形で except で schedules を除外するようにしてください。
4. Schedules の設定
上の図のように移動して Schedules の作成画面に移動します。
こんな感じで入力してあげたら完成です。
5. テスト
実際に設定した時間まで待つのもあれなので、手動で起動してテストをしましょう。
スケジュール一覧ページに Run ボタンがあるので押してみます。
6. 確認
Run ボタンが押されると GitLab ランナーが動いて .gitlab-ci.yml
に記載した通りにジョブを実行してくれます。
ジョブの実行が完了したら新しく Merge Request が作成されているので確認します。
無事差分が表示されました!!🎉🎉🎉
GitLab実践ガイド impress top gearシリーズ
- 作者: 北山晋吾
- 出版社/メーカー: インプレス
- 発売日: 2018/02/01
- メディア: Kindle版
- この商品を含むブログを見る
インフラCI実践ガイド Ansible/GitLabを使ったインフラ改善サイクルの実現
- 作者: 中島倫明,佐々木健太郎,北山晋吾,齊藤秀喜,羽深修
- 出版社/メーカー: 翔泳社
- 発売日: 2018/06/18
- メディア: Kindle版
- この商品を含むブログを見る