Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

@yuichielectric CI/CD Test Night #5 GitHubʹ͓͚Δ GitHub Actionsར༻๏

Slide 3

Slide 3 text

CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ Who am I? ాத ༟Ұ (yuichielectric)
 Solutions Engineer, GitHub


Slide 4

Slide 4 text

GitHub Actions

Slide 5

Slide 5 text

GitHub಺ʹ૊ΈࠐΈ 20δϣϒ·Ͱฒߦ࣮ߦ͕Մೳ
 ʢϦϙδτϦ͋ͨΓʣ Linux, macOS, WindowsʹՃ͑ίϯςφ ͷ࣮ߦ΋Մೳ ϚτϦοΫεϏϧυ ࣮ߦதӾཡՄೳɺݕࡧɺ֤ߦ͕ϦϯΫԽ
 ͞Εͨϩά

Slide 6

Slide 6 text

https://github.com/ruby/ruby/actions

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

ॲཧΛίϯϙʔωϯτԽʢactionsͱݺͿʣ ͯ͠࠶ར༻͢Δࣄ͕Մೳ 
 - Dockerίϯςφ
 - JavaScript
 ༷ʑͳΠϕϯτͰτϦΨʔՄೳ
 - GitHub্ͷ͢΂ͯͷWebhookΠϕϯτ
 - cronه๏ʹΑΔఆظ࣮ߦ
 - HTTPϦΫΤετ

Slide 10

Slide 10 text

CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ 1 name: CI Build 2 on: [push, pull_request] 3 jobs: 4 build: 5 runs-on: ${{ matrix.os }} 6 strategy: 7 matrix: 8 os: [ubuntu-latest, windows-latest, macOS-latest] 9 node-version: [8.*, 10.*, 12.*] 10 steps: 11 - name: Checkout the changes from Git 12 uses: actions/checkout@v1 13 - name: Use Node.js 14 uses: actions/setup-node@v1 15 with: 16 node-version: ${{ matrix.node-version }} 17 - name: Install dependencies 18 run: npm ci 19 - name: Execute tests 20 run: npm test 21 - name: Record code coverage 22 run: npx codecov 23 env: 24 CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

Slide 11

Slide 11 text

https://github.com/marketplace?type=actions

Slide 12

Slide 12 text

CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ GitHubࣾ಺Ͱͷར༻ #1 - ύοέʔδϦϦʔεͷࣗಈԽ - https://github.com/github/learning-lab-components

Slide 13

Slide 13 text

CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ •τϦΨʔ: master΁ͷϚʔδ 1. υϥϑτϦϦʔεϊʔτʹ௥ه 2. package.jsonʹهࡌͷόʔδϣϯ্͕͕͍ͬͯͨΒϦϦʔεϊʔτΛpublish 3. όʔδϣϯ൪߸͕ηϚϯςΟοΫόʔδϣχϯάʹै͍ͬͯΔ͔Ͳ͏͔νΣοΫ 4. GitHub Package RegistryʹύοέʔδΛpublish https://github.com/github/learning-lab-components/blob/master/.github/workflows/release_management.yml ϫʔΫϑϩʔͷྲྀΕ

Slide 14

Slide 14 text

https://github.com/github/learning-lab-components/releases

Slide 15

Slide 15 text

https://github.com/github/learning-lab-components/packages/11396

Slide 16

Slide 16 text

CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ 1. υϥϑτϦϦʔεϊʔτʹ௥ه
 release-drafter
 https://github.com/toolmantim/release-drafter 2. package.jsonʹهࡌͷόʔδϣϯ্͕͕͍ͬͯͨΒϦϦʔεϊʔτΛpublish
 node-draft-releaser
 https://github.com/JamesMGreene/node-draft-releaser 3. όʔδϣϯ൪߸͕ηϚϯςΟοΫόʔδϣχϯάʹै͍ͬͯΔ͔Ͳ͏͔νΣοΫ
 validate-semver-release
 https://github.com/JasonEtco/validate-semver-release 4. GitHub Package RegistryʹύοέʔδΛpublish
 npm publishίϚϯυΛ࣮ߦ https://github.com/github/learning-lab-components/blob/master/.github/workflows/release_management.yml ϫʔΫϑϩʔͷྲྀΕ

Slide 17

Slide 17 text

https://github.com/toolmantim/release-drafter

Slide 18

Slide 18 text

CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ GitHubࣾ಺Ͱͷར༻ #2 - ΢ΣϒαΠτͷը૾αΠζͷ࠷దԽ - https://github.com/customer-stories ϦϙδτϦ͸privateͰ͢ ><

Slide 19

Slide 19 text

CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ •τϦΨʔ: push, pull-request 1. ࠩ෼தͷը૾ϑΝΠϧͷαΠζΛνΣοΫ͠ɺҰఆ஋Ҏ্ͷαΠζͷը૾
 ͸ॖখͯ͠commit & push 2. ϓϧϦΫΤετʹαΠζͷࠩ෼ͷίϝϯτΛ౤ߘ ϫʔΫϑϩʔͷྲྀΕ

Slide 20

Slide 20 text

https://github.com/calibreapp/image-actions

Slide 21

Slide 21 text

CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ 1 name: Compress images 2 on: pull_request 3 jobs: 4 build: 5 name: calibreapp/image-actions 6 runs-on: ubuntu-latest 7 steps: 8 - uses: actions/checkout@master 9 - name: calibreapp/image-actions 10 uses: docker://calibreapp/github-image-actions 11 env: 12 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Slide 22

Slide 22 text

CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ ࠓޙͷ༧ఆ

Slide 23

Slide 23 text

CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ 2019/11/13ʹGA༧ఆ

Slide 24

Slide 24 text

Self hosted runner ࣗ͝਎ͷϋʔυ΢ΣΞ/VM্Ͱͷ࣮ߦ ۙʑఏڙ։࢝༧ఆ

Slide 25

Slide 25 text

https://twitter.com/natfriedman/status/1178321206321143808

Slide 26

Slide 26 text

CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ • UIͷվળ • γϯλοΫεͷ௥Ճ • ϒϥ΢β্ͰYAMLϑΝΠϧΛฤू͢ΔࡍͷΦʔτίϯϓϦʔτɺΤϥʔදࣔ • υΩϡϝϯτͷվળ ͦͷଞӶҙ։ൃத

Slide 27

Slide 27 text

https://github.com/features/actions

Slide 28

Slide 28 text

CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ Tips

Slide 29

Slide 29 text

CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ ϫʔΫϑϩʔϑΝΠϧͷݕࡧ