Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Go で作った CLI ツールにバージョンを埋め込みたい
Search
Kotaro Otaka
November 19, 2025
Programming
0
62
Go で作った CLI ツールにバージョンを埋め込みたい
The Go gopher was designed by Renée French.
https://gotalk.connpass.com/event/372360/
Kotaro Otaka
November 19, 2025
Tweet
Share
More Decks by Kotaro Otaka
See All by Kotaro Otaka
組込みだけじゃない!TinyGo で始める無料クラウド開発入門
otakakot
2
410
組込みだけじゃない! TinyGo で始める無料クラウド開発入門
otakakot
1
14
統一感のある Go コードを生成 AI の力で手にいれる
otakakot
1
3.5k
SQLBoiler がメンテナンスモードになりまして
otakakot
0
190
Wasm わからないけど Go で実装したいから入門する
otakakot
1
10k
cmp.Or に感動した
otakakot
3
890
net/http/httptest が推しです♡
otakakot
3
300
無料で楽しむ Go サーバー開発のススメ
otakakot
11
3.9k
Go のテストで失敗をマークする
otakakot
1
240
Other Decks in Programming
See All in Programming
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
700
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.5k
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
170
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
6.9k
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
390
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
2
650
ゲームの物理 剛体編
fadis
0
320
ソフトウェア設計の課題・原則・実践技法
masuda220
PRO
26
22k
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
420
30分でDoctrineの仕組みと使い方を完全にマスターする / phpconkagawa 2025 Doctrine
ttskch
3
800
FluorTracer / RayTracingCamp11
kugimasa
0
220
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
380
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.1k
Making Projects Easy
brettharned
120
6.5k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
Building Flexible Design Systems
yeseniaperezcruz
330
39k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Six Lessons from altMBA
skipperchong
29
4.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Scaling GitHub
holman
464
140k
The Cult of Friendly URLs
andyhume
79
6.7k
The Invisible Side of Design
smashingmag
302
51k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Transcript
The Go gopher was designed by Renée French. Go で作った
CLI ツールに バージョンを埋め込みたい おーたかこーたろー / @otakakot 2025.11.19 Go Connect #10
#goconnect Go で CLI ツールを作成したことある人
#goconnect バージョン出力したいな
#goconnect バージョンはどうやって管理する?
バージョン管理手法を4パターン紹介! #goconnect
紹介するパターンは OSS の実装を参照 #goconnect
Kotaro Otaka おーたかこーたろー / @otakakot #goconnect Web Engineer 新卒入社 Hello
Golang! Web Engineer @株式会社ビットキー 2020.04 2021.04 2022.11 Gopher 年生 Go
#goconnect 定数/const パターン
定数でバージョンを管理 #goconnect Features
#goconnect
もっともシンプル #goconnect Pros
自動更新を考えるとめんどくさい #goconnect Cons
#goconnect beego フレームワークのための CLI ツール
#goconnect go:embed パターン
Go 1.16 で追加された 外部ファイルをプログラム に埋め込む機能を利用 #goconnect Features
#goconnect
定数で扱うより自動更新は楽 #goconnect Pros
バージョン更新のために コミットしないといけない #goconnect Cons
#goconnect XMLとHTMLの操作 CLI ツール
#goconnect go build -ldflags パターン
ビルド時に -ldflags オプションを利用し バージョン情報を外部から渡す #goconnect Features
#goconnect
コード外でバージョン情報を管理可能 #goconnect Pros
go install だとバージョンが含まれない #goconnect Cons
#goconnect k8s ファイルを分割するための CLI ツール
#goconnect buildinfo パターン
Go 1.18 で追加された Git の commit id や commit した時刻等の
バージョン管理システム(VCS) 情報を利用 #goconnect Features
#goconnect
go install でもバージョン情報が含まれる #goconnect Pros
実装が多少複雑化 #goconnect Cons
#goconnect kubectl の出力を色付けする CLI ツール
#goconnect まとめ
パターン名 バージョン管理場所 定数/const Go コード go:embed テキストファイル go build -ldflags
git tag など + ビルド時注入 buildinfo バージョン管理システム(VCS) #goconnect
#goconnect おすすめは buildinfo
おわり またどこかで お会いしましょう!