Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Gitlab CIでMRを自動生成する
Search
forcia_dev_pr
June 15, 2022
Programming
0
1.5k
Gitlab CIでMRを自動生成する
2022/6/8(水)に行われた「自動化大好きエンジニアLT会 - vol.7」での発表資料です。
https://rakus.connpass.com/event/245663/
forcia_dev_pr
June 15, 2022
Tweet
Share
More Decks by forcia_dev_pr
See All by forcia_dev_pr
"書く文化"を仕組みで育てる──フォルシアの技術ブログ継続戦略
forcia_dev_pr
1
140
新しいおもちゃを見つけたい私がやっている情報収集
forcia_dev_pr
2
390
「Pythonの環境構築について」と記事作成で意識したこと
forcia_dev_pr
1
130
Neovim で VS Code みたいにコーディングする
forcia_dev_pr
1
140
なぜ・どうやって・何を書く? 〜技術記事を書く習慣の作り方〜
forcia_dev_pr
1
150
第8回ゆるふわオンサイト 解説スライド
forcia_dev_pr
0
91
第7回ゆるふわオンサイト解説
forcia_dev_pr
0
230
第6回ゆるふわオンサイト解説
forcia_dev_pr
0
230
よくわかるFORCIAのエンジニア旅行SaaSプロダクト開発編
forcia_dev_pr
0
750
Other Decks in Programming
See All in Programming
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
Rails Frontend Evolution: It Was a Setup All Along
skryukov
0
240
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
2
970
PicoRuby on Rails
makicamel
2
140
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
3
790
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
190
A full stack side project webapp all in Kotlin (KotlinConf 2025)
dankim
0
130
iOS 26にアップデートすると実機でのHot Reloadができない?
umigishiaoi
0
140
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
1k
Android 16KBページサイズ対応をはじめからていねいに
mine2424
0
240
Hack Claude Code with Claude Code
choplin
6
2.4k
効率的な開発手段として VRTを活用する
ishkawa
0
150
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Building Applications with DynamoDB
mza
95
6.5k
A Modern Web Designer's Workflow
chriscoyier
695
190k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
It's Worth the Effort
3n
185
28k
The Cult of Friendly URLs
andyhume
79
6.5k
GraphQLとの向き合い方2022年版
quramy
49
14k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
700
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
7
330
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
Transcript
Gitlab CIでMRを自動生成する 籏野 拓 2022.6.8 @自動化大好きエンジニアLT会 - vol.7
• 自己紹介 • 自動化したフロー • まとめ 本日のお品書き 2
自己紹介 • 籏野 拓 (Taku Hatano) • ソフトウェアエンジニア@フォルシア株式会社 ◦ 福利厚生系webサイトの検索ページ
◦ 社内のお役立ちツール開発など • 活動領域 ◦ Next.js/expressでアプリケーション開発 ◦ 最近はk8sでのアプリ構築もやったりしました 3
Gitlab CIとは • Gitlabが提供するCI/CDを自動化するための仕組み • GitlabCIが実行する各jobはプロジェクトに紐づいている ◦ 特定のブランチ更新などをトリガーにジョブを実行 4
• いわゆるGitHub Flow ◦ 開発ブランチを切る ◦ MR提出 ◦ レビュー完了後マージ ブランチ戦略
5 master feature ・MR作成 ・レビュー 毎回作るのが 面倒
• Gitlab APIを利用 ◦ MR作成済みかをチェック→なければMRを作成 • GitlabCIが提供する環境変数/ユーザー設定の環境変数を利用 ◦ 各プロジェクトで同じコードを使いまわせる GitLabCIの設定
- MR生成 6 【Gitlab CIが提供する環境変数の一例】 CI_BUILD_REF_NAME: pushしたブランチ名 CI_PROJECT_ID: プロジェクトID 参考 【MR作成のリクエスト】 curl -X POST -H "Private-Token: ${PRIVATE_TOKEN}" \ -d "title=${TITLE}&source_branch=${CI_BUILD_REF_NAME}&target_branch=${TARGET_BRANCH} &description=${DESCRIPTION}&${OPTIONS}" \ "${GITLAB_DOMAIN}/api/v4/projects/${CI_PROJECT_ID}/merge_requests"
• 設定ファイルの一部を切り出して、リポジトリに登録 ◦ 様々なプロジェクトでincludeしてCIを実行できるようになった Gitlab CIの設定の共有 7 include: # MRを自動生成
- project: 'misc/gitlab-ci-template' ref: 'master' file: '/create_mr/template.yml' create_mr: variables: PRIVATE_TOKEN: $GITLAB_BOT_TOKEN MR_TEMPLATE_TYPE: default TARGET_BRANCH: master IS_DRAFT: 1 OPTIONS: 'remove_source_branch=yes'
• 思った以上に快適 • MR作成漏れが防げる • MRのフォーマットを統一しやすい ◦ テンプレートを用意しても使われなければ意味がない 良かった点 8
• テスト • deploy • tagの自動付与 • 自動マージ • MRのレビュワー自動アサイン
• …etc Gitlab CIで実現している自動化 9
ご清聴ありがとうございました 10
EOF