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活用術
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Wataru Mizukami
October 28, 2020
830
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
620
Kotlin serializationの使い方を詳しく調べてみた
tarumzu
2
1.7k
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
GitHub's CSS Performance
jonrohan
1033
470k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Navigating Weather and Climate Data
rabernat
0
540
The Limits of Empathy - UXLibs8
cassininazir
1
700
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
300
So, you think you're a good person
axbom
PRO
2
2.2k
Why Our Code Smells
bkeepers
PRO
340
58k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
500
The agentic SEO stack - context over prompts
schlessera
0
950
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
530
WENDY [Excerpt]
tessaabrams
14
40k
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
ご清聴ありがとうございました!