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
GitHub Actionsのハンズオン
Search
魔迦論
May 08, 2025
43
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitHub Actionsのハンズオン
GitHub Actionsとは
ワークフローファイルの最小構成
GitHub Actions ハンズオン
発展課題
魔迦論
May 08, 2025
More Decks by 魔迦論
See All by 魔迦論
英文の読み方
mackalong
0
24
OpenAPIについて
mackalong
0
31
useSWRについて
mackalong
0
18
JWTについて_基本編
mackalong
1
25
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
360
The browser strikes back
jonoalderson
0
1.2k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
250
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
210
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
940
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
220
Transcript
GitHub Actionsのハンズオン
GitHub Actionsについて 概要 GitHubリポジトリ上で、開発ワークフローを自動化するプラットフォーム ⇨CICDの実現 実体 GitHubリポジトリ内の”/.github/workflows”配下に存在するYAMLファイル ワークフローファイルなどとも呼ばれる YAMLの書き方などは後述 複数のYAMLファイルをworkflowsに配置して、複数のアクションを定義可能
ワークフローファイルの最小構成 「mainブランチへのプッシュをトリガーに、ジョブ実行環境で、"Hello, World!"を出力する」ワークフロー name: Echo HelloWorld # ワークフローの名前(UIに表示される) on: push
# トリガー設定(いつ実行するか) branches: - main # mainブランチにpushされたとき jobs: # 実行するジョブ(複数定義可能) echo-hello: # ジョブ名(任意) runs-on: ubuntu-latest # ジョブ実行環境 steps: # ジョブ内で順番に実行されるステップ(複数定義可能) - run: echo "Hello, world!" # 実行するコマンド (複数あるとき)基本的にワークフローとジョブは並列実行、ステップは直列実行 stepsでは、"run"の他にも、"uses"でAction MarketPlaceにて公開されているアクションを使用可能 job内で生成したファイルなどは、"Artifacts"にアップロードして、ユーザーや他jobがダウンロード可能
ワークフロー作成ハンズオン 前提 準備するもの PC gitコマンドが実行可能(gitユーザ設定済み) GitHubアカウント作成済み ハンズオンで作るワークフロー Golangプログラムの「静的解析、単体テスト→ビルド→実行確認」パイプライン 今回は、静的解析と単体テストは並列に実行して、ビルドはその両方が成功したら行い、実行確 認はビルドが成功したら行う
このワークフローのゴールは、対象プログラムをビルドして、実行ファイルが正常に動作するこ とを確認すること
ハンズオン 1. PCで、以下のGitHubリポジトリにアクセスする GitHub-Actions_HandsOn 1-1. リポジトリのトップ画面の右上あたりの緑色ボタン「Use this template」をクリック 1-2. 「Create
a new repository」をクリック 1-3. Repository templateに"macka-long/GitHub-Actions_HandsOn”が選択されてることを確認する 1-4. 以下のリポジトリ情報を設定 - Repository name : MyActionsTest - 公開設定 : private 1-5. 緑色ボタン「Create repository」クリック 2. 前手順で作成した"MyActionsTest"をローカルにgit clone 3.~5.の手順は、このローカルリポジトリで作業する 3. "MyActionsTest"内に、 ”/.github/workflows”を作成する
4. "/sample-workflow”内の以下のファイルを前手順で作成した”/.github/workflows”にコピーする go-ci-workflow.yaml 何をやってるかは当ファイルのコメントで書いておいたので、それを読んでください 5. これまでのローカル作業の内容をgit add→commit→push 6. GitHubで、"MyActionsTest"リポジトリにアクセスして、 「Actions」を確認する
今回実行されたアクションの各ジョブ、ステップのログを見てみる "Run Built Binary"ジョブのログを見て、ちゃんと"Hello, Go Action"が出力されたか(実行ファイルの 正常性)を確認する
発展課題 1. ジョブの実行順序を以下に変更する すべて直列に、 「静的解析=>単体テスト=>ビルド=>実行確認」 2. ワークフローのトリガーを以下に変更する mainブランチへのpush&すべてのブランチからのpull_request 3. デイリービルドのワークフローファイルを作成する
実行スケジュールは毎日24時、ジョブは任意 生成された成果物のアップロード先は、ArtifactsでもGitHubリリースでもどちらでも良い 4. 好きな言語で、ワークフローを考えて、リポジトリを作る