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
730
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
270
Minecraft の MOD 開発を通して 子どもと一緒に考えるシステム開発について / Thinking About System Development with Children #jjug_ccc
mackey0225
0
83
「なんか〇〇ライブラリで脆弱性あるみたいなんだけど。。。」から始める脆弱性対応 / First Steps in Vulnerability Response
mackey0225
2
150
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
190
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
580
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
220
プロポーザル駆動学習 / Proposal-Driven Learning
mackey0225
2
3.4k
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
1.4k
Other Decks in Programming
See All in Programming
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
420
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
410
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.6k
1年で人数1.5倍、PR数5.5倍増。 品質とアウトカムはどうなったか、 何が効いたか
ike002jp
0
150
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
2.3k
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
230
5分で問診!Composer セキュリティ健康診断
codmoninc
0
620
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
910
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.8k
AIが無かった頃の素敵な出会いの話
codmoninc
1
240
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
560
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
150
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
260
Optimizing for Happiness
mojombo
378
71k
The Cult of Friendly URLs
andyhume
79
7k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
380
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.7k
How to Ace a Technical Interview
jacobian
281
24k
How to Talk to Developers About Accessibility
jct
2
440
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
220
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
440
Rails Girls Zürich Keynote
gr2m
96
14k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
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については、まだまだ遊べることもありそうなので、業務・プライ ベート問わず使えるところで使っていきたい
• 次話す際は、もっと実作業や本運用に即した内容で話せるよう 新鮮で旨味のある ネタを仕入れたいです
おしまい