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
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
800
Minecraft の MOD 開発を通して 子どもと一緒に考えるシステム開発について / Thinking About System Development with Children #jjug_ccc
mackey0225
0
93
「なんか〇〇ライブラリで脆弱性あるみたいなんだけど。。。」から始める脆弱性対応 / First Steps in Vulnerability Response
mackey0225
2
160
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
220
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
610
JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 / Learning Post-Quantum Crypto Basics from JEP 496 & 497
mackey0225
2
1.1k
「社内LT会」を1年続けてみた! / Our Year-Long Journey of Internal Lightning Talks
mackey0225
1
240
プロポーザル駆動学習 / Proposal-Driven Learning
mackey0225
2
3.5k
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
1.4k
Other Decks in Programming
See All in Programming
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
19k
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
830
VibeCodingからAgenticWorkflowへ
starfish719
0
690
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.8k
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
340
Google Apps Script で Ruby を動かす
kawahara
0
280
リアルな遅延を測る仕様
kota_yata
1
120
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
710
5分で問診!Composer セキュリティ健康診断
codmoninc
0
1.1k
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
210
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
110
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.9k
Featured
See All Featured
We Are The Robots
honzajavorek
0
300
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
370
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Faster Mobile Websites
deanohume
310
32k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
440
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
380
Balancing Empowerment & Direction
lara
6
1.2k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
470
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
170
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については、まだまだ遊べることもありそうなので、業務・プライ ベート問わず使えるところで使っていきたい
• 次話す際は、もっと実作業や本運用に即した内容で話せるよう 新鮮で旨味のある ネタを仕入れたいです
おしまい