Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitHub Actionsのハンズオン
Search
魔迦論
May 08, 2025
0
26
GitHub Actionsのハンズオン
GitHub Actionsとは
ワークフローファイルの最小構成
GitHub Actions ハンズオン
発展課題
魔迦論
May 08, 2025
Tweet
Share
More Decks by 魔迦論
See All by 魔迦論
英文の読み方
mackalong
0
11
OpenAPIについて
mackalong
0
20
useSWRについて
mackalong
0
10
JWTについて_基本編
mackalong
1
14
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
How to Ace a Technical Interview
jacobian
280
24k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
How GitHub (no longer) Works
holman
316
140k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Balancing Empowerment & Direction
lara
5
790
Scaling GitHub
holman
464
140k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
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. 好きな言語で、ワークフローを考えて、リポジトリを作る