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
GitHub Actions CI/CD Update
Search
bakunyo
August 18, 2019
Programming
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitHub Actions CI/CD Update
bakunyo
August 18, 2019
More Decks by bakunyo
See All by bakunyo
合宿成果@日本色
bakunyo
0
150
AMP 完全に理解した
bakunyo
0
430
NNにふれてみて
bakunyo
0
1.1k
RoRoRoRoR
bakunyo
0
980
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
550
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
450
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
710
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
450
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
370
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
480
Kubernetes祭り #2 OP/ED
bells17
0
100
AWSに止められる覚悟してますか?
morizo_1984
2
510
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
120
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
190
SREの越境 / SRE Collaboration
y0hgi
2
300
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
390
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
Writing Fast Ruby
sferik
630
63k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
260
Git: the NoSQL Database
bkeepers
PRO
433
67k
WENDY [Excerpt]
tessaabrams
14
40k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Agile that works and the tools we love
rasmusluckow
331
22k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
We Are The Robots
honzajavorek
0
390
Skip the Path - Find Your Career Trail
mkilby
1
240
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
WCS-LA-2024
lcolladotor
0
850
Transcript
GitHub Actions ۙگ 2019.8.18 Sun Shinjuku.LT@ຊڮ @bakunyo
About me • @bakunyo • freelance • ࠷ۙυϥϚʮ͋ͳͨͷ൪Ͱ͢ʯʹϋϚΓத
ࠓճͷ༰ • GitHub Actions: ࡢ10݄ͷ GitHub Universe Ͱ ൃද͞Εͨ৽ػೳʢݱࡏ β
൛ʣ • 2݄ͷ Shinjuku.LT ͰͦΕʹ͍ͭͯൃද • https://blog.bakunyo.com/2019/02/26/github-actions-git-pr- release/ • ࠓճͦͷ UPDATE
https://github.blog/2019-08-08-github-actions-now-supports-ci-cd/
GitHub Special Product Announcement • 2019.08.08 GitHubHQ ͰΠϕϯτ͕։࠵͞Εͨ • ༰
GitHub Actions ͷ࠷৽ใʹ͍ͭͯ • ϝΠϯ built-in CI/CD ɺͦΕҎ֎৭ʑ
Documentation Update • Core Concepts ͕ཧ͞Εͨ • Workflow ͷఆ͕ٛ HCL
→ YAML ʹมߋ • (چ) https://developer.github.com/actions/ • (৽) https://help.github.com/en/categories/ automating-your-workflow-with-github-actions
Core Concepts ͕ཧ͞Εͨ name: Greet Everybody on: [push] jobs: build:
name: Greeting runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: ./hello-world-action with: who-to-greet: 'Octocat' id: hello - run: echo "The time was $ {{ steps.hello.outputs.time }}" workflow event job step instance workflow run
Workflow ͷఆ͕ٛ HCL → YAML ʹมߋ ɾ⾠ HCL ͷαϙʔτ 2019.9.30
·Ͱ ɾmigration tool ͕༻ҙ͞ΕͯΔ ɹhttps://help.github.com/en/articles/migrating-github-actions-from-hcl-syntax-to-yaml-syntax
࣮ߦͯ͠Έͨ $ ~/Downloads/migrate-actions Created workflow .github/workflows/release.yml Created workflow .github/workflows/push.yml You
can now delete your main.workflow file. If you have any .yml files in .github/workflows your main.workflow will be ignored. rm .github/main.workflow git add -A .github/main.workflow .github/workflows/*.yml git commit -m 'converted main.workflow to Actions V2 yml files' Thanks for being a ________.__ __ ___ ___ ___. _____ __ .__ / _____/|__|/ |_ / | \ __ _\_ |__ / _ \ _____/ |_|__| ____ ____ ______ / \ ___| \ __\/ ~ \ | \ __ \ / /_\ \_/ ___\ __\ |/ _ \ / \ / ___/ \ \_\ \ || | \ Y / | / \_\ \ / | \ \___| | | ( <_> ) | \\___ \ \______ /__||__| \___|_ /|____/|___ / \____|__ /\___ >__| |__|\____/|___| /____ > \/ \/ \/ \/ \/ \/ \/ __________ __ ___________ __ \______ \ _____/ |______ \__ ___/___ _______/ |_ ___________ | | _// __ \ __\__ \ | |_/ __ \ / ___/\ __\/ __ \_ __ \ | | \ ___/| | / __ \_ | |\ ___/ \___ \ | | \ ___/| | \/ |______ /\___ >__| (____ / |____| \___ >____ > |__| \___ >__| \/ \/ \/ \/ \/ \/ ɾWorkflow ຖʹYAMLϑΝΠϧ͕ࣗಈੜ͞ΕΔ ɾίϝϯτফ͑Δ ɾbranch Λ filter action Ͱఆظͨ͠ͱ͜ΖࣗͰॻ͖͑ͨํ͕ྑͦ͞͏ʢޙड़ʣ ɾ֓Ͷͳ͠
Before workflow "Create PR to master" { resolves = ["git-pr-release"]
on = "push" } action "Filter branch" { uses = "actions/bin/filter@24a566c2524e05ebedadef0a285f72dc9b631411" args = "branch develop" } action "git-pr-release" { uses = "bakunyo/git-pr-release-action@master" needs = ["Filter branch"] secrets = [ "GITHUB_TOKEN", ] env = { GIT_PR_RELEASE_BRANCH_STAGING = "develop" } }
After name: Create PR to master on: push: branches: -
develop jobs: filterBranch: name: Filter branch runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: git-pr-release uses: bakunyo/git-pr-release-action@master env: GIT_PR_RELEASE_BRANCH_STAGING: develop GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
What’s built-in CI/CD? • ͜Ε·Ͱͷ GitHub Actions Ͱ࣍ୈͰ CI/ CD
͋ΔఔͰ͖ͨ • ࠓճͷൃදͰ CI/CD Λαϙʔτ͢Δػೳ͕૿͑ͨ • ػೳΛෳ߹తʹར༻͢Δ͜ͱͰɺbuilt-in CI/CD ͱݴ͍ͬͯΔʢʁʣ
Matrix builds strategy: matrix: node: [6, 8, 10] os: [ubuntu-14.04,
ubuntu-18.04] ɾOSݴޠόʔδϣϯ͝ͱͷϏϧυΛฒྻͰͰ͖Δ ɾฒྻ 1 repository 20 jobs ·Ͱ ɾˣͷ߹ɺ 3 x 2 = 6 jobs ΛฒྻͰ࣮ߦՄೳ
Events on: push: branches: - master paths: - test/* schedule:
- cron: '0 * * * *' ɾ͜Ε·Ͱಉ༷ɺGitHub ͷ֤छΠϕϯτΛൃՐ݅ʹͰ͖Δ ɾBranch ͷϑΟϧλָ͕ʹͳͬͨ ɹʢ͜Ε·ͰϑΟϧλ༻ͷ GitHub Action Λ͏ඞཁ͕͋ͬͨʣ ɾՃ͑ͯɺpath ࢦఆ cron syntax ʹΑΔఆٛՄೳʹͳͬͨ
Live streaming logs ɾϩάΛϥΠϒετϦʔϛϯάͰ৴ ɾColor code Emoji Λαϙʔτ ɾ֤ߦ͕ϦϯΫͱͯ͠γΣΞՄೳ
Secret Store ɾSecrets Λཧ͢Δઐ༻ϖʔδ͕༻ҙ͞Εͨ uses: actions/hello-world@master env: SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK
}}
“GitHub Actions” Generally Available on November 13.
Reference • https://github.com/features/actions • https://live-stream.github.com/? utm_source=announcemet&utm_medium=email&utm_campaign=livestream-080619 • https://github.blog/2019-08-08-github-actions-now-supports-ci-cd/ • https://help.github.com/en/categories/automating-your-workflow-with-github-actions