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 Actions活用術
Search
Wataru Mizukami
October 28, 2020
820
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitHub Actions活用術
Wataru Mizukami
October 28, 2020
More Decks by Wataru Mizukami
See All by Wataru Mizukami
CIサービス「Bitrise」を使って 最小限の労力でDanger + ktlintをGithubと連携させる
tarumzu
1
1.1k
JavaScriptでWebViewをハックする
tarumzu
2
1.5k
Realm Cloudを使ったオフラインファーストなアプリ開発
tarumzu
2
1.1k
ViewFlipperで手軽にリッチアニメーション
tarumzu
0
610
Kotlin serializationの使い方を詳しく調べてみた
tarumzu
2
1.7k
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
230
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Ethics towards AI in product and experience design
skipperchong
2
340
The SEO Collaboration Effect
kristinabergwall1
1
510
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Automating Front-end Workflow
addyosmani
1370
210k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Documentation Writing (for coders)
carmenintech
77
5.4k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Between Models and Reality
mayunak
4
380
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
450
Transcript
GitHub Actions活用術 Wataru Mizukami(水上 亘) Kotlin愛好会 #25
自己紹介 - Wataru Mizukami / 水上 亘 - / @tarumzu
(たる) - Organization / タクシー配車アプリ作ってる会社
早速ですがGitHub Actionsのまとめ - GitHub利用している人ならすぐ始められる - ジョブは無料枠でも20(macOSは5)まで並列実行ができる(た だし、一月のジョブ実行時間は2000分まで) - 自前Botアカウント不要 -
無料枠のストレージは500MBなので定期的にファイルを削除 する
早速ですがGitHub Actionsのまとめ - GitHub利用している人ならすぐ始められる - ジョブは無料枠でも20(macOSは5)まで並列実行ができる(た だし、一月のジョブ実行時間は2000分まで) - 自前Botアカウント不要 -
無料枠のストレージは500MBなので定期的にファイルを削除 する
自前Botアカウント不要
GitHub Actionsの設定 name: danger on: pull_request: branches: - master jobs:
build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Setup ruby uses: actions/setup-ruby@v1 with: ruby-version: '2.6' architecture: 'x64' - name: install danger run: | gem install bundler bundle install - name: run ktlintCheck run: ./gradlew ktlintCheck - name: run danger env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: danger
GitHub Actionsの設定 name: danger on: pull_request: branches: - master jobs:
build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Setup ruby uses: actions/setup-ruby@v1 with: ruby-version: '2.6' architecture: 'x64' - name: install danger run: | gem install bundler bundle install - name: run ktlintCheck run: ./gradlew ktlintCheck - name: run danger env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: danger - name: run danger env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: danger DangerはGitHub Actionsに対応しているので、 GitHubのアクセストークンを環境変数 `GITHUB_TOKEN` として設定してあげるだけで OK! GitHub ActionsはCI実行ごとにデフォルトで secretsにトークンが設定される。
Pull Requestを作成すると… 無事botが動いた
無料枠のストレージは500MBなので定期的に ファイルを削除する
ワークフローの書き方 name: publish // 略 jobs: build: runs-on: ubuntu-latest steps:
- uses: actions/checkout@v2 // 略 - name: Build with Gradle run: ./gradlew :app:assembleDebug - name: Upload apk uses: actions/upload-artifact@v2 with: name: apk path: app/build/outputs/apk publish: needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Download apk uses: actions/download-artifact@v2 with: name: apk // 略
ワークフローの書き方 name: publish // 略 jobs: build: runs-on: ubuntu-latest steps:
- uses: actions/checkout@v2 // 略 - name: Build with Gradle run: ./gradlew :app:assembleDebug - name: Upload apk uses: actions/upload-artifact@v2 with: name: apk path: app/build/outputs/apk publish: needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Download apk uses: actions/download-artifact@v2 with: name: apk // 略 publish: needs: build タスクごとにJobを分けるとワークフローが見やす い。この例だとbuild, publishと分けている(実際に は他にtestやdangerなども)。 jobは基本的に並列で動きますが、特定のジョブ の結果を待ちたい場合、needsでジョブを指定する ことで直列にすることもできる。
ワークフローの書き方 name: publish // 略 jobs: build: runs-on: ubuntu-latest steps:
- uses: actions/checkout@v2 // 略 - name: Build with Gradle run: ./gradlew :app:assembleDebug - name: Upload apk uses: actions/upload-artifact@v2 with: name: apk path: app/build/outputs/apk publish: needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Download apk uses: actions/download-artifact@v2 with: name: apk // 略 - name: Upload apk uses: actions/upload-artifact@v2 with: name: apk path: app/build/outputs/apk ジョブ間でファイルの受け渡しをする場合、 upload-artifactアクションが必要。
ワークフローの書き方 name: publish // 略 jobs: build: runs-on: ubuntu-latest steps:
- uses: actions/checkout@v2 // 略 - name: Build with Gradle run: ./gradlew :app:assembleDebug - name: Upload apk uses: actions/upload-artifact@v2 with: name: apk path: app/build/outputs/apk publish: needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Download apk uses: actions/download-artifact@v2 with: name: apk // 略 - name: Download apk uses: actions/download-artifact@v2 with: name: apk 受け取り側はdownload-artifactでファイルを受け 取る
無料枠のストレージは500MBなので定期的に ファイルを削除する
artifactを削除する設定その1 GitHubのリポジトリ - Settings - Actionsから設定可能。た だし、リポジトリ共通設定なのでArtifact毎に設定したい場 合は使えない
artifactを削除する設定その2 https://github.blog/changelog/2020-10-08-github-actions-ability-to-change-retention-days-for-artifacts-and-logs/ なんと!10/1リリースの
[email protected]
から公式で retention-daysが設定できるように! (今までは非公式のc-hive/gha-remove-artifactsを使うし かなかった)
まとめ - GitHub利用している人ならすぐ始められる - ジョブは無料枠でも20(macOSは5)まで並列実行ができる(た だし、一月のジョブ実行時間は2000分まで) - 自前Botアカウント不要 - 無料枠のストレージは500MBなので定期的にファイルを削除
する
Github Actions (v2) でDanger + ktlintを実行させる https://qiita.com/tarumzu/items/43 2fc356580ebfab77d4 GitHub Actionsを使ってAndroidア
プリをFirebase App Distributionへ 配信するまでのベストプラクティス https://qiita.com/tarumzu/items/43 2fc356580ebfab77d4
ご清聴ありがとうございました!