GitHub Actions CI/CD Update
by
bakunyo
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
GitHub Actions ۙگ 2019.8.18 Sun Shinjuku.LT@ຊڮ @bakunyo
Slide 2
Slide 2 text
About me • @bakunyo • freelance • ࠷ۙυϥϚʮ͋ͳͨͷ൪Ͱ͢ʯʹϋϚΓத
Slide 3
Slide 3 text
ࠓճͷ༰ • GitHub Actions: ࡢ10݄ͷ GitHub Universe Ͱ ൃද͞Εͨ৽ػೳʢݱࡏ β ൛ʣ • 2݄ͷ Shinjuku.LT ͰͦΕʹ͍ͭͯൃද • https://blog.bakunyo.com/2019/02/26/github-actions-git-pr- release/ • ࠓճͦͷ UPDATE
Slide 4
Slide 4 text
https://github.blog/2019-08-08-github-actions-now-supports-ci-cd/
Slide 5
Slide 5 text
GitHub Special Product Announcement • 2019.08.08 GitHubHQ ͰΠϕϯτ͕։࠵͞Εͨ • ༰ GitHub Actions ͷ࠷৽ใʹ͍ͭͯ • ϝΠϯ built-in CI/CD ɺͦΕҎ֎৭ʑ
Slide 6
Slide 6 text
Documentation Update • Core Concepts ͕ཧ͞Εͨ • Workflow ͷఆ͕ٛ HCL → YAML ʹมߋ • (چ) https://developer.github.com/actions/ • (৽) https://help.github.com/en/categories/ automating-your-workflow-with-github-actions
Slide 7
Slide 7 text
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
Slide 8
Slide 8 text
Workflow ͷఆ͕ٛ HCL → YAML ʹมߋ ɾ⾠ HCL ͷαϙʔτ 2019.9.30 ·Ͱ ɾmigration tool ͕༻ҙ͞ΕͯΔ ɹhttps://help.github.com/en/articles/migrating-github-actions-from-hcl-syntax-to-yaml-syntax
Slide 9
Slide 9 text
࣮ߦͯ͠Έͨ $ ~/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 Ͱఆظͨ͠ͱ͜ΖࣗͰॻ͖͑ͨํ͕ྑͦ͞͏ʢޙड़ʣ ɾ֓Ͷͳ͠
Slide 10
Slide 10 text
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" } }
Slide 11
Slide 11 text
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 }}
Slide 12
Slide 12 text
What’s built-in CI/CD? • ͜Ε·Ͱͷ GitHub Actions Ͱ࣍ୈͰ CI/ CD ͋ΔఔͰ͖ͨ • ࠓճͷൃදͰ CI/CD Λαϙʔτ͢Δػೳ͕૿͑ͨ • ػೳΛෳ߹తʹར༻͢Δ͜ͱͰɺbuilt-in CI/CD ͱݴ͍ͬͯΔʢʁʣ
Slide 13
Slide 13 text
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 ΛฒྻͰ࣮ߦՄೳ
Slide 14
Slide 14 text
Events on: push: branches: - master paths: - test/* schedule: - cron: '0 * * * *' ɾ͜Ε·Ͱಉ༷ɺGitHub ͷ֤छΠϕϯτΛൃՐ݅ʹͰ͖Δ ɾBranch ͷϑΟϧλָ͕ʹͳͬͨ ɹʢ͜Ε·ͰϑΟϧλ༻ͷ GitHub Action Λ͏ඞཁ͕͋ͬͨʣ ɾՃ͑ͯɺpath ࢦఆ cron syntax ʹΑΔఆٛՄೳʹͳͬͨ
Slide 15
Slide 15 text
Live streaming logs ɾϩάΛϥΠϒετϦʔϛϯάͰ৴ ɾColor code Emoji Λαϙʔτ ɾ֤ߦ͕ϦϯΫͱͯ͠γΣΞՄೳ
Slide 16
Slide 16 text
Secret Store ɾSecrets Λཧ͢Δઐ༻ϖʔδ͕༻ҙ͞Εͨ uses: actions/hello-world@master env: SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
Slide 17
Slide 17 text
“GitHub Actions” Generally Available on November 13.
Slide 18
Slide 18 text
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