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
魔迦論
May 08, 2025
47
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitHub Actionsのハンズオン
GitHub Actionsとは
ワークフローファイルの最小構成
GitHub Actions ハンズオン
発展課題
魔迦論
May 08, 2025
Transcript
7 slides
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. 好きな言語で、ワークフローを考えて、リポジトリを作る
More Decks by 魔迦論
See All by 魔迦論
英文の読み方
mackalong
0
39
OpenAPIについて
mackalong
0
36
useSWRについて
mackalong
0
50
JWTについて_基本編
mackalong
1
37
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
560
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.2k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
610
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
800
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
880
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
530
Mind Mapping
helmedeiros
1
440
Unsuck your backbone
ammeep
672
58k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Design in an AI World
tapps
1
390