$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitHubとCircleCIで過去問管理 / #aosc 2019-12-21
Search
さたけ
December 21, 2019
Programming
0
70
GitHubとCircleCIで過去問管理 / #aosc 2019-12-21
https://github.com/satackey/kakomon-manager-legacy
さたけ
December 21, 2019
Tweet
Share
More Decks by さたけ
See All by さたけ
Packer で自分だけの Raspberry Pi イメージを 作った話 / #techstudygroupjp 2020.5.14
satackey
0
420
Dockerを使ってみよう / #kosenconf131hokkaido
satackey
0
200
Cloud Foundry を使ってみた / #aosc 2018-02-23
satackey
0
28
Other Decks in Programming
See All in Programming
AI時代もSEOを頑張っている話
shirahama_x
0
270
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
340
[堅牢.py #1] テストを書かない研究者に送る、最初にテストを書く実験コード入門 / Let's start your ML project by writing tests
shunk031
12
7.1k
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.4k
AWS CDKの推しポイントN選
akihisaikeda
1
240
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
18
7.2k
開発に寄りそう自動テストの実現
goyoki
1
740
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
1
210
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
490
スタートアップを支える技術戦略と組織づくり
pospome
8
16k
ID管理機能開発の裏側 高速にSaaS連携を実現したチームのAI活用編
atzzcokek
0
210
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
120
Featured
See All Featured
BBQ
matthewcrist
89
9.9k
How to Ace a Technical Interview
jacobian
280
24k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Docker and Python
trallard
47
3.7k
Thoughts on Productivity
jonyablonski
73
5k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
CI/CDೖ GitHubͱCircleCIͰաڈཧ ͚ͨ͞ @satakenkoki
ࣗݾհ • খߴઐ 2 ใܥ • ࠷ֶۙߍͰ αʔόߏங͍ͯ͠·͢ • @satakenkoki
͔ͬ͜Α͋͘Γ·ͤΜʁʁ
None
RTA࡞Ͱ͢
CI/CDͱ
ΞϓϦέʔγϣϯ։ൃͷεςʔδʹ ࣗಈԽΛऔΓೖΕͯɺ ސ٬ʹΞϓϦέʔγϣϯΛఏڙ͢Δ සΛߴΊΔख๏Ͱ͢ɻ CI/CD ͱ - Red Hat
Α͘Θ͔Μͳ͍Ͱ͢Ͷ
ίʔυॻ͘ ↓ git commit ↓ git push
ίʔυॻ͘ ↓ git commit ↓ git push ↓ Կ͔Δ(ࣗಈ)
աڈཧͷ͓
ԿΛ࡞ͬͨͷ͔ • ը૾ϑΝΠϧΛஔ͘ • ը૾ϑΝΠϧͷύεͱɺ ͦͷϑΝΠϧͷใ (2017ɾྺ࢙ɾޙظதؒɾ1ϖʔδ)Λॻ͘
• $ python assort.py ԿΛ࡞ͬͨͷ͔
※खಈͰ͢
※खಈͰ͢ ೖΕସ͑ޙͷ Google DriveͷΞοϓϩʔυ
None
ςετظؒ ↓ ↑
ٽ
None
·ͣϑΝΠϧҠಈ - run: name: Assort files command: | python codes/assort.py
assort
มߋ͕͋ͬͨ࣌ˠcommit & push - run: name: Push assorted files to
repo if chenges command: | if [ -n "$(git status --porcelain)" ]; then git add -A . git commit -m "[auto] assort $(git show -s --format=%s)" git push origin $(git rev-parse --abbrev-ref HEAD) ɹɹfi
ࣗಈԽʂʂʂ
ࣗಈԽʂʂʂ ↓ CI͕͏·͘ಈ͍ͨҹ
↓ CI͕͏·͘ಈ͍ͨҹ → ࣦഊ͢Δͱ͜͏ͳΔ
Τϥʔ͕ग़ͨ࣌ ίϛοτͤ͠OK
࣮ߦ݁Ռݟ͑·͢
Slack௨Ͱ͖·͢ ࣦഊ͚ͨ࣌ͩ͠ͱ͔
Ұ୴ɺ·ͱΊ • CI/CDΛ͏ͱɺgit pushΛτϦΨʔͱͯ͠ ίϚϯυʹ࣮ߦͰ͖Δ • CircleCIͰɺσϑΥϧτͷ࣮ߦڥ͕ Dockerίϯςφ ɹɹ→
͕ࣗ࡞ͬͨڥͦͷ··
ྫ • Heroku • SSHΩʔΛCIʹՃ͓ͯ͘͠ • masterʹpush͞ΕͨΒ $ git push
heroku master
• Firebase • firebase ίϚϯυ͕͑Δ DockerΠϝʔδΛ༻ҙ • τʔΫϯΛڥมʹઃఆ • firebase
deploy ྫ
ຊདྷͷCI/CD • Ұൠతʹɺ ςετࣗಈԽΛओͱͯ͠ ΘΕ͍ͯΔΑ͏Ͱ͢ • ςετԿͦΕ͓͍͍͠ͷ
DriveΞοϓϩʔυͷࣗಈԽ • skickaͱ͍͏CLIπʔϧΛݟ͚ͭ·ͨ͠ɻ
• τʔΫϯΛڥมʹઃఆ͢Δ • skicka upload ………… DriveΞοϓϩʔυͷࣗಈԽ
Generate pdf and deploy: jobs: - generate: filters: branches: only:
master masterϒϥϯν͚ͩͰ
- run: name: Upload to Google Drive command: | ……
skicka upload ./ /աڈཧ/աڈ(ෳŋ࠶ېࢭ)
Ϋϥυܕ • CircleCI ɹɹ2000/݄ • Travis CI ɹɹOSSແྉ • GitHub
Actions OSSແྉ 20ฒྻͰ͖Δ • GitLab CI
ΦϯϓϨ • Jenkins • Drone DockerίϯςφڥΛར༻Ͱ͖Δ
աڈཧͷʹΓ·͢
աڈ͕ߋ৽͞ΕΔϑϩʔ • ϒϥϯνΔ • ϑΝΠϧՃ • Pull Request Λ։͘ •
Mergeʹςετ௨ա • Approve͕ඞਢ
͜Ε͔Βͷ՝ • Τϥʔ͕ग़ͨ࣌ͷେ͕ରॲ͍ͯ͠Δ • গͳ͘ͱGitΛཧղ͠ͳ͍ͱ աڈΛߋ৽Ͱ͖ͳ͍ • Web UI࡞ͬͯɺ GitΛҙࣝͤͣʹߋ৽(ίϛοτ)͍ͤͨ͞