Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
GitHubにおける GitHub Actions利用法/How GitHub uses GitHub Actions
Yuichi Tanaka
October 02, 2019
Programming
7
500
GitHubにおける GitHub Actions利用法/How GitHub uses GitHub Actions
CI/CD Test Night #5 発表資料
https://testnight.connpass.com/event/145238/
Yuichi Tanaka
October 02, 2019
Tweet
Share
More Decks by Yuichi Tanaka
See All by Yuichi Tanaka
yuichielectric
10
3.9k
yuichielectric
11
2k
yuichielectric
8
1.2k
yuichielectric
0
84
Other Decks in Programming
See All in Programming
patorash
0
120
eller86
0
600
shiba6v
0
200
minecr
0
110
ickx
3
590
sysrich
0
240
inoue2002
1
280
imk2o
0
180
andpad
0
320
progate
2
450
dnskimo
7
1.3k
hanhan1978
14
3.4k
Featured
See All Featured
imathis
479
150k
reverentgeek
167
7.3k
jnunemaker
PRO
40
4.7k
andyhume
64
3.8k
pauljervisheath
195
15k
geoffreycrofte
25
1k
ufuk
56
5.5k
cherdarchuk
71
260k
chriscoyier
498
130k
samlambert
237
10k
keavy
107
14k
qrush
285
19k
Transcript
None
@yuichielectric CI/CD Test Night #5 GitHubʹ͓͚Δ GitHub Actionsར༻๏
CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ Who am I? ాத
༟Ұ (yuichielectric) Solutions Engineer, GitHub
GitHub Actions
GitHubʹΈࠐΈ 20δϣϒ·Ͱฒߦ࣮ߦ͕Մೳ ʢϦϙδτϦ͋ͨΓʣ Linux, macOS, WindowsʹՃ͑ίϯςφ ͷ࣮ߦՄೳ ϚτϦοΫεϏϧυ ࣮ߦதӾཡՄೳɺݕࡧɺ֤ߦ͕ϦϯΫԽ ͞Εͨϩά
https://github.com/ruby/ruby/actions
None
None
ॲཧΛίϯϙʔωϯτԽʢactionsͱݺͿʣ ͯ͠࠶ར༻͢Δࣄ͕Մೳ - Dockerίϯςφ - JavaScript ༷ʑͳΠϕϯτͰτϦΨʔՄೳ - GitHub্ͷͯ͢ͷWebhookΠϕϯτ
- cronه๏ʹΑΔఆظ࣮ߦ - HTTPϦΫΤετ
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 }}
https://github.com/marketplace?type=actions
CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ GitHubࣾͰͷར༻ #1 - ύοέʔδϦϦʔεͷࣗಈԽ
- https://github.com/github/learning-lab-components
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 ϫʔΫϑϩʔͷྲྀΕ
https://github.com/github/learning-lab-components/releases
https://github.com/github/learning-lab-components/packages/11396
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 ϫʔΫϑϩʔͷྲྀΕ
https://github.com/toolmantim/release-drafter
CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ GitHubࣾͰͷར༻ #2 - ΣϒαΠτͷը૾αΠζͷ࠷దԽ
- https://github.com/customer-stories ϦϙδτϦprivateͰ͢ ><
CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ •τϦΨʔ: push, pull-request 1.
ࠩதͷը૾ϑΝΠϧͷαΠζΛνΣοΫ͠ɺҰఆҎ্ͷαΠζͷը૾ ॖখͯ͠commit & push 2. ϓϧϦΫΤετʹαΠζͷࠩͷίϝϯτΛߘ ϫʔΫϑϩʔͷྲྀΕ
https://github.com/calibreapp/image-actions
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 }}
CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ ࠓޙͷ༧ఆ
CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ 2019/11/13ʹGA༧ఆ
Self hosted runner ࣗ͝ͷϋʔυΣΞ/VM্Ͱͷ࣮ߦ ۙʑఏڙ։࢝༧ఆ
https://twitter.com/natfriedman/status/1178321206321143808
CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ • UIͷվળ • γϯλοΫεͷՃ
• ϒϥβ্ͰYAMLϑΝΠϧΛฤू͢ΔࡍͷΦʔτίϯϓϦʔτɺΤϥʔදࣔ • υΩϡϝϯτͷվળ ͦͷଞӶҙ։ൃத
https://github.com/features/actions
CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ Tips
CI/CD Test Night #5 GitHubʹ͓͚ΔGitHub Actionsར༻๏ ϫʔΫϑϩʔϑΝΠϧͷݕࡧ