Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Gitlab CIでMRを自動生成する
forcia_dev_pr
June 15, 2022
Programming
0
110
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
フォルシアにおけるPostgreSQLの活用
forcia_dev_pr
0
97
PostgreSQL開発とテスト
forcia_dev_pr
0
110
PostgreSQL vs Elasticsearch -ファセットカウント編-
forcia_dev_pr
0
110
そのSQL、もっと速くなりますよ。
forcia_dev_pr
0
130
AWS LambdaでのRust利用
forcia_dev_pr
1
190
専任メンバー0人でも技術広報の活動を継続することができているワケ
forcia_dev_pr
0
95
未経験者も即戦力にする フォルシアの技術教育
forcia_dev_pr
0
100
5日で成果を出せる サマーインターンの作り方
forcia_dev_pr
0
84
巨大プロジェクトにおける オンボーディング
forcia_dev_pr
0
92
Other Decks in Programming
See All in Programming
Power Automateドリブンのチームマネジメント
hanaseleb
0
180
Embracing commonMain for Android Development - Droidcon SF 2022
handstandsam
4
230
Terraform Plan/Apply結果の自動通知
ymmy02
0
280
Oracle REST Data Service: APEX Office Hours
thatjeffsmith
0
700
Running Laravel/PHP on AWS (AWS Builders Day Taiwan 2022)
dwchiang
0
130
Value and Record Types
hschwentner
0
550
Treasure.map(): Functional programming in JVM-based languages
paranoidmonoid
0
130
Springin‘でみんなもクリエイターに!
ueponx
0
130
What's new in Android development tools まとめ
mkeeda
0
290
Beyond Micro Frontends: Frontend Moduliths for the Enterprise @enterjs2022
manfredsteyer
PRO
0
130
Beyond Micro Frontends: Frontend Moduliths for the Enterprise @wad2022
manfredsteyer
PRO
0
130
Baseline Profilesでアプリのパフォーマンスを向上させる / Improve app performance with Baseline Profiles
numeroanddev
0
230
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
62
7.2k
Six Lessons from altMBA
skipperchong
14
1.4k
Web development in the modern age
philhawksworth
197
9.3k
Teambox: Starting and Learning
jrom
123
7.7k
Facilitating Awesome Meetings
lara
29
4k
How to Ace a Technical Interview
jacobian
265
21k
Ruby is Unlike a Banana
tanoku
91
9.2k
Writing Fast Ruby
sferik
612
57k
Unsuck your backbone
ammeep
659
55k
Thoughts on Productivity
jonyablonski
43
2.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
655
120k
A Philosophy of Restraint
colly
192
15k
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