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
0
24
GitHub Actionsのハンズオン
GitHub Actionsとは
ワークフローファイルの最小構成
GitHub Actions ハンズオン
発展課題
魔迦論
May 08, 2025
Tweet
Share
More Decks by 魔迦論
See All by 魔迦論
英文の読み方
mackalong
0
9
OpenAPIについて
mackalong
0
16
useSWRについて
mackalong
0
8
JWTについて_基本編
mackalong
1
9
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
The Language of Interfaces
destraynor
158
25k
Embracing the Ebb and Flow
colly
86
4.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
Git: the NoSQL Database
bkeepers
PRO
430
65k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Gamification - CAS2011
davidbonilla
81
5.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
4 Signs Your Business is Dying
shpigford
184
22k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
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. 好きな言語で、ワークフローを考えて、リポジトリを作る