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
860
Minecraft の MOD 開発を通して 子どもと一緒に考えるシステム開発について / Thinking About System Development with Children #jjug_ccc
mackey0225
0
100
「なんか〇〇ライブラリで脆弱性あるみたいなんだけど。。。」から始める脆弱性対応 / First Steps in Vulnerability Response
mackey0225
2
180
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
230
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
640
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
240
プロポーザル駆動学習 / Proposal-Driven Learning
mackey0225
2
3.6k
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
1.5k
Other Decks in Programming
See All in Programming
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
200
Go のフラットな パッケージに 「ファイル単位の private」を 〜Linter “declscope” を作った話〜
mpyw
0
250
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
190
巨大モノリシックアプリ モダン化大作戦
ktcryomm
0
990
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
620
業務時間外もAIに働いてもらう話
colorful12
3
10k
Family mrubyの進捗
kishima
1
120
VueプロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一部高速化 -
koukimiura
0
110
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
340
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
160
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
120
AIエージェント時代のコードレビューを設計する
nogu66
6
2.7k
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
108
250k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
430
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
240
Documentation Writing (for coders)
carmenintech
77
5.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Code Review Best Practice
trishagee
74
20k
Site-Speed That Sticks
csswizardry
13
1.5k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
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については、まだまだ遊べることもありそうなので、業務・プライ ベート問わず使えるところで使っていきたい
• 次話す際は、もっと実作業や本運用に即した内容で話せるよう 新鮮で旨味のある ネタを仕入れたいです
おしまい