Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Real World Nix CI/CD編
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
asa1984
March 09, 2025
Technology
790
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Real World Nix CI/CD編
Nix meetup #2 の飛び入り LT に登壇した際のスライド
asa1984
March 09, 2025
More Decks by asa1984
See All by asa1984
Effect-TS をなぜ採用し、なぜ継続できたか? / Why Effect-TS? And why do we keep using it?
asa1984
3
1.3k
Real World Effect-TS: 堅牢なプロダクトを型で組み上げる
asa1984
2
950
Nix入門パラダイム編
asa1984
6
1.8k
Other Decks in Technology
See All in Technology
小規模OSSモデルは サイバーセキュリティ業務に どこまで使えるか
bbrbbq
0
300
Codex を使った障害対応机上演習の実際
orgachem
PRO
0
360
生成AI時代、PMは事業責任者に進化するともっと面白い〜PMだからこそ事業構造を動かせる時代に〜
kakehashi
PRO
0
840
正解のない研修に放り出されて / Being thrown into a training program with no right answers
ohnoeight
1
150
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
160
アカウント統制の健康診断
kenichinakamura
1
190
企画を Software Factory-ready にする——開発が高速になったとき、PdMの仕事はどう変わったか
yachibit
1
260
Adversary Infrastructure Hunting101
disconinja
0
150
DevelopersIO 2026 Tokyo 現時点の衛星通信サービスの現状を整理してみる
maroon1st
0
300
LLM Content Moderationを支える評価・改善ループの実践
suikabar
2
350
What Is JetBrains Air
x5gtrn
PRO
0
170
Agent × Maestro で始める モバイル E2E 端末準備からテスト実行・結果確認まで
sansantech
PRO
0
200
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
10k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
510
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
940
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
560
The Invisible Side of Design
smashingmag
301
52k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.8k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
My Coaching Mixtape
mlcsv
0
360
First, design no harm
axbom
PRO
2
1.4k
Tell your own story through comics
letsgokoyo
1
1.1k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
550
Transcript
Real World Nix CI/CD編 asa1984
asa1984 - 名前の読み方: アサヒ - Asahi (本名) + ジョージ・オーウェル『1984』 -
自称 Web フロントエンドエンジニア 所属 - 仙台高専ロボティクスコース (2020 ~ 2025-03) - ??? 2
asa1984 - 名前の読み方: アサヒ - Asahi (本名) + ジョージ・オーウェル『1984』 -
自称 Web フロントエンドエンジニア 所属 - 仙台高専ロボティクスコース (2020 ~ 2025-03) - HERP (2025-04~) - スタートアップの HR Tech - Nix をプロダクションで利用している超おもしろ企業 3
報告 就職しました 1. Nix meetup #1 に参加 (2024-10) 2. 懇親会で
HERP の方にインターンを紹介される 3. インターン参加 (2024-12) 4. 入社 (2025-04 予定) 4
報告 就職しました 1. Nix meetup #1 に参加 (2024-10) 2. 懇親会で
HERP の方にインターンを紹介される 3. インターン参加 (2024-12) 4. 入社 (2025-04 予定) Nix meetup 運営の皆様、ありがとうございます!!! 5
本編 → 6 ← 余談
Real World Nix CI/CD編 asa1984
Real World で Nix を CI/CD 編 に 利用する話 asa1984
- 全部 Nix - home-manager - NixOS (Desktop) 9 -
devShell - CI/CD - NixOS (Infra) DARK SIDE LIGHT SIDE プロダクション に投入可能 ギーク向け
CI/CD に Nix を用いるメリット - 開発環境と CI 環境のツールの統一 - devShell
を使えば簡単に同じツールを導入できる - デプロイ時間の短縮 - バイナリキャッシュを利用できる - IaaC としての性質 - 再現性・宣言的 10
基本 - devShell / pkgs.buildEnv - CI 環境への Nix 導入
11
1. devShell を用意する - まずは開発環境をセットアッ プしよう - flake.nix で devShell
を定義 - nix develop で起動 - nix-direnv を使うともっと 体験が良い 12
2. CI 用パッケージを用意する - CI で使うパッケージを定義 - pkgs.buildEnv - 複数のパッケージをまとめ
て1つのパッケージにするこ とができる 13
2. CI 用パッケージを用意する - CI で使うパッケージを定義 - pkgs.buildEnv - 複数のパッケージをまとめ
て1つのパッケージにするこ とができる Q. devShell 使わないの? A. Workflow でシェルを起動 してはいけない (1敗) 14
3. CI 環境に Nix を導入する GitHub Actions の場合 - DeterminateSystems/nix-installer-action
- cachix/install-nix-action - etc… 上2つのどちらかを使えば OK 15
4. パッケージをインストールする - nix profile install .#ci - nix profile
の使い所 - packages.ci をグローバルインストールする あとは普通の CI と同様にコマンドを使えるので OK 16
応用 - バイナリキャッシュ - Docker イメージ - self-hosted runner 17
バイナリキャッシュ on CI Nixpkgs はバイナリキャッシュがあるが… - 当然ダウンロードに時間はかかる - 自前ビルドしている場合は尚更 18
バイナリキャッシュ on CI Nixpkgs はバイナリキャッシュがあるが… - 当然ダウンロードに時間はかかる - 自前ビルドしている場合は尚更 CI
環境限定のバイナリキャッシュを作る - ローカルバイナリキャッシュストア - GitHub Actions Cache API - nix copy 参照: asa1984/infra/.github/actions/binary-cache/action.yaml 19
バイナリキャッシュ on デプロイ - デプロイ対象が Nix でビル ドされているならバイナリ キャッシュを利用できる -
Nix が想定している利用方法 (Nix meetup #1「Nix入門: パラダイム編」参照) 20 Supabase の例
Docker with Nix pkgs.dockerTools.buildImage - Docker image をビルドする関数 - 必要なものだけが入ったミニマルイメージができる
- distroless より小さくできる - 同様に self-hosted runner もビルド可能 - pkgs.github-runner 21
追記: お役立ちリンク - github:asa1984/infra - https://github.com/asa1984/infra - バイナリキャッシュを作ろう - https://zenn.dev/asa1984/articles/make-a-binary-cache
- Nix is a better Docker image builder than Docker's image builder - https://xeiaso.net/talks/2024/nix-docker-build 22