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
Git 未経験者 が GitHub Actions で もがいた話 / 20220914 g...
Search
mackey0225
September 14, 2022
Programming
740
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Git 未経験者 が GitHub Actions で もがいた話 / 20220914 git beginner uses github actions
mackey0225
September 14, 2022
More Decks by mackey0225
See All by mackey0225
人生初のマネージャーというロールを 経験して得たもの・失ったもの / Reflections on My First Manager Role
mackey0225
0
900
Minecraft の MOD 開発を通して 子どもと一緒に考えるシステム開発について / Thinking About System Development with Children #jjug_ccc
mackey0225
0
110
「なんか〇〇ライブラリで脆弱性あるみたいなんだけど。。。」から始める脆弱性対応 / First Steps in Vulnerability Response
mackey0225
2
240
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
290
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
690
JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 / Learning Post-Quantum Crypto Basics from JEP 496 & 497
mackey0225
2
1.2k
「社内LT会」を1年続けてみた! / Our Year-Long Journey of Internal Lightning Talks
mackey0225
1
270
プロポーザル駆動学習 / Proposal-Driven Learning
mackey0225
2
3.7k
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
1.5k
Other Decks in Programming
See All in Programming
Simple Storage Service(S3) is not simple
iwatsukayura
0
210
wkhtmltopdfの次どうするか問題2026
willnet
2
1.9k
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
160
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
230
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
190
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
350
Agents on Rails - Rails at Scale 2026
irinanazarova
0
340
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
230
AWSに止められる覚悟してますか?
morizo_1984
2
510
R8 の設定見直しでアプリサイズ削減
andpad
0
180
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.4k
残高管理から台帳サービスへの進化
artoy
0
160
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
300
How to build a perfect <img>
jonoalderson
1
6.1k
Six Lessons from altMBA
skipperchong
29
4.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Faster Mobile Websites
deanohume
310
32k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
480
Into the Great Unknown - MozCon
thekraken
41
2.8k
Facilitating Awesome Meetings
lara
57
7.2k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
540
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Why Our Code Smells
bkeepers
PRO
340
58k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
490
Transcript
Git 未経験者 が GitHub Actions で もがいた話 2022-09-14 自動化大好きエンジニアLT会 -
vol.8
いきなりですが、 話す内容は 「開発チーム内での運用でこうやりました!」とか、 「現場でのTips集」とかではなく、 「趣味の一環・ネタ」になります! (ハードルをベタベタに下げてお聞きください)
と言うのも、 当初は、 「現場での実運用や実践しての学び」で話そうと思って いましたが、 同じ内容で JJUG CCC 2022 Fall にプロポーザル出した
ら、採択されました ので、 気になる方は11月のJJUG CCCをお聞きください! (謎の宣伝!)
Git 未経験者 が GitHub Actions で もがいた話 【ネタ編】 2022-09-14 自動化大好きエンジニアLT会
- vol.8
目次 • 自己紹介 • 自動化の対象について ◦ Before ◦ After •
試行錯誤したこと • 課題 と 自問自答 と 今後
自己紹介
名前: あさの まさき 出身: 大阪 所属: BABY JOB 株式会社(2022-06 入社) 役割:
Javaエンジニア Twitter: @mackey0225 GitHub: @mackey0225 趣味: - 育児: もうすぐ2歳の息子がいます - 音楽: 聞くのも弾くのも好きです - サウナ: ミーハーですが『サ道』がきっかけ 自己紹介
自己紹介 - 所属企業紹介
自己紹介 - 所属企業紹介 - サービス紹介 全国 2,100 施設以上 に導入 !!
32,000 名以上が利用中 !! ※ 2022 年 7 月時点
自己紹介 - 所属企業紹介 - サービス紹介
自動化の対象について
自動化前の作業(Before) INPUT PROCESS OUTPUT 商品の画像 ヒト が Adobe Illustrator か
Figma で 編集・作業 加工後の画像
今回の自動化の結果(After) 商品の画像 ①ヒト が GitHub に 画像をマージさせるプルリクを作成 ②作成されたプルリクをもとに GitHub Actions
を実行 ③作成したプルリクに編集画像を追加 ④最終的には人の判断でブランチにマージさせる ① ② ③ ④ ④ INPUT PROCESS OUTPUT 加工後の画像
試行錯誤したこと
試行錯誤したところ 1. 起動トリガーについて ◦ プルリクエストであること ◦ 画像ファイルであること(今回は.pngにしています) 2. 変換したファイルの取り扱い ◦
いきなりマージではなく、プルリク元ブランチにプッシュして、レビュー チェックできるようにする
起動トリガーについて on: pull_request: paths: [ "image/input/**.png" ] https://github.com/mackey0225/20220914_lt_automation/blob/8f520fa121cbc3cd4214b408438712368 9758a27/.github/workflows/image_converter.yml <やったこと>
以下の通り、 on に pull_request と paths 設定して実現 ◦ プルリクエストであること ◦ 画像ファイルであること(拡張子.pngであること)
起動トリガーについて on: pull_request: paths: [ "image/input/**.png" ] pull_request_target: branches: [
"main" ] https://github.com/mackey0225/20220914_lt_automation/blob/8f520fa121cbc3cd4214b408438712368 9758a27/.github/workflows/image_converter.yml <やってしまったこと(失敗)> 当初 pull_request_target も設定してしまったため、二重で Actions が実行される ことが発生 例えば、上記の場合、 他ブランチで画像ファイルを追加し、 そのブランチを main ブランチへマージするプルリクを作ると、 同じ Actions が 2 回並行で実行される
変換したファイルの取り扱い <やったこと> 変換後のファイルをプルリクの元ブランチにプッシュさせることで、プルリクの差分に 表示させている https://github.com/mackey0225/20220914_lt_automation/pull/12/files
変換したファイルの取り扱い <具体的に> ①処理冒頭でプルリク元のブランチをチェックアウトした後、処理を実行 jobs: execute: runs-on: "ubuntu-latest" steps: - name:
Checkout uses: actions/checkout@v3 with: ref: ${{ github.head_ref }} << 略:Python 実行環境のセットアップ >> - name: Execute Python script - Image Converter run: | python image_convert.py https://github.com/mackey0225/20220914_lt_automation/blob/8f520fa121cbc3cd4214b408438712368 9758a27/.github/workflows/image_converter.yml
変換したファイルの取り扱い ②変換した結果、差分の有無を確認し、プルリク元ブランチにプッシュする << 前ページの続き >> - name: Check for modified files in
Image Converter id: git-check run: echo ::set-output name=modified::$(if git diff-index --quiet HEAD --; then echo "false"; else echo "true"; fi) - name: Push in Modified File if: steps.git-check.outputs.modified == 'true' run: | git config user.name github-actions[bot] git config user.email 41898282+github-actions[bot]@users.noreply.github.com git status git add . git commit -m "Image Converted." git push origin HEAD https://github.com/mackey0225/20220914_lt_automation/blob/8f520fa121cbc3cd4214b408438712368 9758a27/.github/workflows/image_converter.yml
変換したファイルの取り扱い <余談> 実際の現場では、 上記の変換をコードフォーマッターの処理(例えば、Spotless)を実行した後、 差分があれば、プッシュするように使っています。
課題 と 自問自答 と 今後
課題 と 自問自答 と 今後 <課題> • 画像変換自体が 職人芸 で
スクリプトやプログラム だと難しい ◦ 今回は説明のため、ネガ反転にしているが、本当は画像の上に説明アイコンを 載せるのを自動化したい ◦ 掲載されている内容にかぶらないようにしたり、画像のリサイズなどが必要 ◦ そもそもの部分であるが、人の判断を伴う作業を自動化するのは難しい
課題 と 自問自答 と 今後 <課題> • 画像変換自体が 職人芸 で
スクリプトやプログラム だと難しい ◦ 今回は説明のため、ネガ反転にしているが、本当は画像の上に説明アイコンを 載せるのを自動化したい ◦ 掲載されている内容にかぶらないようにしたり、画像のリサイズなどが必要 ◦ そもそもの部分であるが、人の判断を伴う作業を自動化するのは難しい
課題 と 自問自答 と 今後 <自問自答(セルフツッコミ)> • これってGitHubでやる意味有るの? ◦ そんなこと言わないで! ネタだもん!
◦ 強いていうと、Pythonの実行環境が試せたぐらいかな? ▪ cronトリガーもあるので、簡単なスクレイピングとかであれば十分かも ▪ 無料枠もあるので、そこそこ使えるかも • Git未経験者からどう学ぶのか みたいな内容は無いのか? タイトル詐欺だろ? ◦ そんなこと言わないで! ネタだもん! ◦ すみません、忘れていました。。。 ▪ JJUG CCCでは話すので、ぜひそちらでオナシャス。(謎宣伝再び) • これって実運用しているの? ◦ すみません、できていないです。。。 ネタだもん。。。
課題 と 自問自答 と 今後 <今後> • GitHub Actionsについては、まだまだ遊べることもありそうなので、業務・プライ ベート問わず使えるところで使っていきたい
• 次話す際は、もっと実作業や本運用に即した内容で話せるよう 新鮮で旨味のある ネタを仕入れたいです
おしまい