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
GitHubとCircleCIで過去問管理 / #aosc 2019-12-21
Search
さたけ
December 21, 2019
Programming
74
0
Share
GitHubとCircleCIで過去問管理 / #aosc 2019-12-21
https://github.com/satackey/kakomon-manager-legacy
さたけ
December 21, 2019
More Decks by さたけ
See All by さたけ
Packer で自分だけの Raspberry Pi イメージを 作った話 / #techstudygroupjp 2020.5.14
satackey
0
430
Dockerを使ってみよう / #kosenconf131hokkaido
satackey
0
200
Cloud Foundry を使ってみた / #aosc 2018-02-23
satackey
0
29
Other Decks in Programming
See All in Programming
AIと共に生きる技術選定 2026
sgash708
0
110
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
1
170
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
420
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
1.1k
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
1.2k
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
110
NakouPAY説明用
annouim0
0
260
YJITとZJITにはイカなる違いがあるのか?
nakiym
0
250
Kingdom of the Machine
yui_knk
2
870
「Linuxサーバー構築標準教科書」を読んでみた #ツナギメオフライン.7
akase244
0
1.4k
tRPCの概要と少しだけパフォーマンス
misoton665
2
230
The Less-Told Story of Socket Timeouts
coe401_
3
600
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
110
Testing 201, or: Great Expectations
jmmastey
46
8.1k
HDC tutorial
michielstock
2
630
Marketing to machines
jonoalderson
1
5.2k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
440
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
110
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Λҙࣝͤͣʹߋ৽(ίϛοτ)͍ͤͨ͞