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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
1k
ViewFlipperで手軽にリッチアニメーション
tarumzu
0
610
Kotlin serializationの使い方を詳しく調べてみた
tarumzu
2
1.7k
Featured
See All Featured
Amusing Abliteration
ianozsvald
1
200
My Coaching Mixtape
mlcsv
0
140
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Site-Speed That Sticks
csswizardry
13
1.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Cost Of JavaScript in 2023
addyosmani
55
10k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Fireside Chat
paigeccino
42
3.9k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Designing for humans not robots
tammielis
254
26k
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
ご清聴ありがとうございました!