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
GitHub Actionsと"仲良くなる"ための練習方法
Search
Yuta Matsumura
March 20, 2023
Technology
7.2k
13
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitHub Actionsと"仲良くなる"ための練習方法
CI/CD Conference 2023 #CICD2023
https://event.cloudnativedays.jp/cicd2023/talks/1766
Yuta Matsumura
March 20, 2023
More Decks by Yuta Matsumura
See All by Yuta Matsumura
ChatGPT製:GitHub Copilotの紹介(デモ)
tsubakimoto_s
1
48
MCPをつなげて作る組織横断のAIエージェント基盤(の開発工程)
tsubakimoto_s
0
270
Microsoft MVP プログラムを紹介するから目指す人増えてくれ
tsubakimoto_s
0
220
MCPをつなげて作る組織横断のAIエージェント基盤
tsubakimoto_s
0
890
github/awesome-copilotのPHPのエージェントスキルを読む
tsubakimoto_s
0
99
エージェントスキルを作って自分のインプットに役立てよう v2
tsubakimoto_s
0
73
エージェントスキルを作って自分のインプットに役立てよう
tsubakimoto_s
0
900
やさしいとこから始めるGitHubリポジトリのセキュリティ
tsubakimoto_s
4
2.6k
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
500
Other Decks in Technology
See All in Technology
20260915deck.gl-raster を使ってみた
rena1208
0
180
Confitura 2026
logico_jp
0
110
「大丈夫そう?」をObservabilityで確かめる
mrmtsu
0
240
The kernel report
ennael
PRO
1
160
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
280
ボードゲームの遊び相手をFoundation Modelsで作る / iOSDC Japan 2026
genda
0
240
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
1
290
Mastering Agentic Development: Harness Engineering for Effective Coding Agents
konippi
3
660
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
300
Meet AgentCore Identity Consent Portal
hironobuiga
2
140
Account Factory for Terraformによる 標準化されたアカウント発行の自動化
pensuke628
0
120
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
270
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
320
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Git: the NoSQL Database
bkeepers
PRO
432
67k
So, you think you're a good person
axbom
PRO
2
2.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
270
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
540
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
260
Transcript
#cicd2023 GitHub Actionsと"仲良くなる"ための練習方法 2023/03/20 CI/CD Conference 2023 Yuta Matsumura ©
2023 Yuta Matsumura.
#cicd2023 松村 優大 (Yuta Matsumura) Currently working for © 2023
Yuta Matsumura. Chief Technical Architect C#, PHP, Azure, GitHub が好き Microsoft MVP (Developer Technologies) #fukuten #devblogradio の中の人 @tsubakimoto_s
#cicd2023 これからお話しすること 1. ソフトウェア開発ライフサイクルにおける定型作業 2. GitHub Actions の使い方 3. GitHub
Actions の学び方の課題 4. nektos/act でのローカル練習環境 5. 練習環境のアップグレード © 2023 Yuta Matsumura.
#cicd2023 こういう方にオススメです • GitHub Actions を勉強中・これから勉強する方 • GitHub Actions を使って
CI/CD の構築をしている方 • GitHub Actions の検証に四苦八苦している方 • GitHub Actions と仲良くなりたい方 © 2023 Yuta Matsumura.
#cicd2023 ソフトウェア開発ライフサイクルに おける定型作業 © 2023 Yuta Matsumura.
#cicd2023 ソフトウェア開発ライフサイクル Software Development Life Cycle Plan Develop Deliver Operate
https://learn.microsoft.com/en-us/devops/what-is-devops SDLC © 2023 Yuta Matsumura.
#cicd2023 ソフトウェア開発ライフサイクル Software Development Life Cycle Plan Code Build Test
Release Deploy Operate Monitor https://learn.microsoft.com/en-us/devops/what-is-devops SDLC © 2023 Yuta Matsumura.
#cicd2023 SDLC における定型作業 (ワークフロー) 定型作業を手作業ではなく自動化を行うことで、 開発者が開発に割く時間を少しでも増やすようにしましょう。 © 2023 Yuta Matsumura.
ビジネスワークフロー クラウドワークフロー SDLC ワークフロー GitHub Actions Power Automate Azure Logic Apps
#cicd2023 © 2023 Yuta Matsumura. Azure DevOps (Azure Pipelines) GitHub
(GitHub Actions)
#cicd2023 GitHub Actions の使い方 © 2023 Yuta Matsumura.
#cicd2023 自動化されたワークフロー • YAML ファイル形式 • GitHub と完全統合 • GitHub
上のイベントをトリガー • ライブログと視覚化された実行結果 • 2種のランナー (GitHub-hosted, Self-hosted) • シークレット構成可能 © 2023 Yuta Matsumura. GitHub Actions
#cicd2023 GitHub Actions の構成 © 2023 Yuta Matsumura. イベント ワークフロー
ジョブ1 ジョブ2 ステップ1 アクション ステップ2 アクション ステップ1 アクション ランナー1 アクション実行 実行ログ ランナー2 アクション実行 実行ログ
#cicd2023 GitHub Actions の構成 © 2023 Yuta Matsumura. イベント •
手動実行 • リポジトリに関する操作 • 各機能に関する操作 (Issue, Pull Request, Projects, etc) • スケジュール
#cicd2023 GitHub Actions の構成 © 2023 Yuta Matsumura. イベント ワークフロー
ジョブ1 ジョブ2 ステップ1 アクション ステップ2 アクション ステップ1 アクション ランナー1 アクション実行 実行ログ ランナー2 アクション実行 実行ログ
#cicd2023 GitHub Actions の構成 © 2023 Yuta Matsumura. ランナー1 アクション実行
実行ログ ランナー2 アクション実行 実行ログ GitHub-hosted runner OS: Ubuntu, Windows, macOS https://docs.github.com/ja/actions/using-github-hosted-runners/about-github-hosted-runners https://docs.github.com/ja/actions/hosting-your-own-runners/about-self-hosted-runners Self-hosted runner ローカルやクラウドに構築
#cicd2023 #cicd2023 © 2023 Yuta Matsumura. イベント ジョブ ランナー ステップ
アクション
#cicd2023 GitHub Actions は CI/CD だけではない CI/CD は GitHub Actions
で実現できる作業のひとつです。 GitHub という開発環境を最大限活用するために、 ちょっとしたことからワークフローにしてみましょう。 © 2023 Yuta Matsumura.
#cicd2023 練習してみよう © 2023 Yuta Matsumura.
#cicd2023 GitHub Actions の料金 © 2023 Yuta Matsumura. https://docs.github.com/ja/billing/managing-billing-for-github-actions/about-billing-for-github-actions •
パブリックリポジトリ:無料 • プライベートリポジトリ:無料枠あり 製品 ストレージ 分 (月間) GitHub Free 500MB 2,000 GitHub Pro 1GB 3,000 GitHub Free for Organization 500MB 2,000 GitHub Team 2GB 3,000 GitHub Enterprise Cloud 50GB 50,000
#cicd2023 GitHub Actions の料金 (GitHub-hosted runner) © 2023 Yuta Matsumura.
https://docs.github.com/ja/billing/managing-billing-for-github-actions/about-billing-for-github-actions OS ごとに時間の消費速度が異なります。 x1 x2 x10 Linux Windows macOS
#cicd2023 Public Repo x GitHub-hosted runner x Linux =👍 ©
2023 Yuta Matsumura.
#cicd2023 © 2023 Yuta Matsumura.
#cicd2023 とはいえ毎回 サイトで試すのツライ © 2023 Yuta Matsumura.
#cicd2023 GitHub Actions の学び方の課題 © 2023 Yuta Matsumura.
#cicd2023 GitHub Actions の学び方の課題 • コミットや UI 操作をしないと動作確認できない • ワークフロー内部のデータが分かりにくい
• YAML が複数あるときのトリガー制御が大変 • ブラウザで作業することが大変 © 2023 Yuta Matsumura. イベント ワークフロー アクション
#cicd2023 2022年12月… © 2023 Yuta Matsumura.
#cicd2023 © 2023 Yuta Matsumura.
#cicd2023 つらさをぶつけました Q. Actions を試すのは (前述のように)大変だ A. nektos/act という オープンソースがあるよ
© 2023 Yuta Matsumura.
#cicd2023 nektos/act でのローカル練習環境 © 2023 Yuta Matsumura.
#cicd2023 nektos/act とは GitHub Actions のローカル実行ツールです。 https://github.com/nektos/act リポジトリに変更を加えることなく、ワークフローの実行を 行うことができます。 ※
Docker (Desktop or Engine) が必要です。 © 2023 Yuta Matsumura.
#cicd2023 nektos/act 用のコンテナーイメージ ランナーとして使用するコンテナーイメージが用意されてい ます。サイズは3種類あります。(Large, Medium, Micro) ※ 非サポート:Windows, macOS
© 2023 Yuta Matsumura. 種類 イメージ サイズ Ubuntu ver Large catthehacker/ubuntu:full-latest +20GB 20.04, 18.04 Medium catthehacker/ubuntu:act-latest ~500MB 22.04, 20.04, 18.04 Micro node:16-buster-slim < 200MB 22.04, 20.04, 18.04 https://github.com/nektos/act#runners
#cicd2023 .github/workflows にあるワークフローを表示します $ act --list Stage Job ID Job
name Workflow name Workflow file Events 0 greet Greet Hello world hello-world.yml push ワークフローの一覧表示 © 2023 Yuta Matsumura.
#cicd2023 特定イベントのワークフローを表示します $ act push --list Stage Job ID Job
name Workflow name Workflow file Events 0 greet Greet Hello world hello-world.yml push ワークフローの一覧表示 © 2023 Yuta Matsumura.
#cicd2023 該当するジョブを持つワークフローを表示します $ act --job greet --list Stage Job ID
Job name Workflow name Workflow file Events 0 greet Greet Hello world hello-world.yml push ワークフローの一覧表示 © 2023 Yuta Matsumura.
#cicd2023 指定したジョブを実行します。 $ act # イベント `push` を実行 $ act
pull_request # イベント `pull_request` を実行 $ act --job greet # `greet` ジョブを実行 $ act --input name=yuta # 入力値を指定して実行 $ act --eventpath payload.json # イベント内容を指定して実行 $ act --secret name=yuta # シークレットを指定して実行 $ act --secret-file .secrets # シークレットをファイル指定して実行 ジョブの実行 © 2023 Yuta Matsumura.
#cicd2023 --artifact-server-path で保管先を指定します ※ actions/upload-artifact, actions/download-artifact など $ act --artifact-server-path
/tmp/artifacts アーティファクトを使用する © 2023 Yuta Matsumura. https://qiita.com/nagayaoh/items/d5cff83929452b790164
#cicd2023 © 2023 Yuta Matsumura.
#cicd2023 nektos/act で練習できる範囲 © 2023 Yuta Matsumura. リポジトリ内で完結 するなら不都合ない コンテナー
リポジトリに関する部分
#cicd2023 • GitHub Actions での実環境 • nektos/act での検証環境 1つの YAML
内で環境を区別 するには、コンテキスト内の actor の値で判別可能です。 ▼ コンテキストを見るためのダンプ ▼ コンテキストの内容 { actor: nektos/act, ... } ▼ ワークフローの条件式 nektos/act で実行していることを識別する © 2023 Yuta Matsumura.
#cicd2023 注意点 • github.com にまつわるイベントは試すことができません ▶ Issue, Pull Request, Discussions,
Projects, etc • permissions を用いたアクションは制限があります ▶ Actions からクラウドリソースへの OIDC など • キャッシュはサポートされていません CI 部分に限った練習はとてもやりやすい印象 © 2023 Yuta Matsumura.
#cicd2023 Dev Containers で nektos/act を使う 練習環境をサクっと作りましょう © 2023 Yuta
Matsumura.
#cicd2023 Dev Containers 開発環境としてのコンテナーを準備することができます。 Visual Studio Code + 拡張機能パック +
devcontainer.json ▶ nektos/act の Dev Containers 定義を作成します © 2023 Yuta Matsumura. https://code.visualstudio.com/docs/devcontainers/containers
#cicd2023 #cicd2023 © 2023 Yuta Matsumura.
#cicd2023 #cicd2023 © 2023 Yuta Matsumura. https://github.com/tsubakimoto/cicd-conference-sample/blob/main/.devcontainer/devcontainer.json VS Code で開く
Reopen in Container Dev Containers 起動 .devcontainer/devcontainer.json
#cicd2023 © 2023 Yuta Matsumura.
#cicd2023 GitHub Codespaces © 2023 Yuta Matsumura.
#cicd2023 GitHub Codespaces GitHub 上にホストされる仮想マシンを使用して、 オンライン上に開発環境を構築することができます。 devcontainer.json をリポジトリに保管している場合、 devcontainer.json の構成がセットアップされます。
© 2023 Yuta Matsumura.
#cicd2023 GitHub Codespaces の無料枠 © 2023 Yuta Matsumura. https://docs.github.com/ja/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces
#cicd2023 GitHub Codespaces のマシン種別と価格 © 2023 Yuta Matsumura. https://docs.github.com/ja/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces
#cicd2023 GitHub Codespaces のセキュリティ • 分離された仮想マシンや仮想ネットワーク • Codespace にアクセスできるのは作成者のみ •
外部からのアクセス不可 • ポートフォワーディング機能 • シークレット管理 © 2023 Yuta Matsumura. https://docs.github.com/ja/codespaces/codespaces-reference/security-in-github-codespaces
#cicd2023 Codespace のパーソナライズ © 2023 Yuta Matsumura. https://docs.github.com/ja/codespaces/customizing-your-codespace/personalizing-github-codespaces-for-your-account VSCode 設定の同期
dotfiles リポジトリの反映
#cicd2023 © 2023 Yuta Matsumura. ブラウザだけで Actions の練習ができる!
#cicd2023 まとめ • GitHub Actions の練習にほとんどお金はかかりません • ローカル環境を整えることも大事です • Dev
Containers や GitHub Codespaces を使うことで 環境を問わず練習を行うことができます • ワークフローを増やし、開発ライフサイクルを より良いものにしましょう © 2023 Yuta Matsumura.
#cicd2023 ご清聴ありがとうございました © 2023 Yuta Matsumura.