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
770
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
第6回ゆるふわオンサイト解説
forcia_dev_pr
0
100
よくわかるFORCIAのエンジニア旅行SaaSプロダクト開発編
forcia_dev_pr
0
210
よくわかるフォルシアのエンジニア 新卒採用編
forcia_dev_pr
0
1.3k
第5回ゆるふわオンサイト解説
forcia_dev_pr
0
73
よくわかるフォルシアのエンジニア 旅行プラットフォーム部編
forcia_dev_pr
0
2.8k
React hooks を気合で理解する
forcia_dev_pr
0
160
k8sマニフェストを Typescriptで管理したい― cdk8s+を導入してみました ―
forcia_dev_pr
0
160
第4回ゆるふわ競技プログラミングオンサイト解説
forcia_dev_pr
0
370
フォルシアのフレームワークとTypeScript
forcia_dev_pr
0
180
Other Decks in Programming
See All in Programming
大規模UIKitベースアプリへのTCAの段階的導入/gradual-adoption-of-tca-in-a-large-scale-uikit-based-app
takehilo
1
150
Ruby Function Composition
bkuhlmann
1
330
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
140
VS Code をプロダクトにどう取り込むか
onomax
1
360
Elm Form Validation
bkuhlmann
0
510
dbtのドメイン分割による データ基盤の改善とDigdagとの連携
sakama
0
230
Netty Chicago Java User Group 2024-04-17
sullis
0
170
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
930
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
750
Goのエラースタックトレースの歴史と今後
sonatard
7
1.2k
Changed Rules: Architectures with Lightweight Stores
manfredsteyer
PRO
0
240
What We Can Learn From OSS
inouehi
0
420
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
31
46k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
The Language of Interfaces
destraynor
151
23k
How to train your dragon (web standard)
notwaldorf
73
5.2k
Why Our Code Smells
bkeepers
PRO
331
56k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
A Tale of Four Properties
chriscoyier
151
22k
Automating Front-end Workflow
addyosmani
1356
200k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
[RailsConf 2023] Rails as a piece of cake
palkan
23
3.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.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