Quantcast
Channel: Kengo's blog
Viewing all articles
Browse latest Browse all 157

Gradle用のGitHub Actions勘どころ(2023年夏)

$
0
0

前回書いたのがもう4年前でビビったのと、最近いろいろ進展があったのでまとめてみます。

actions/setup-java の依存キャッシュを使わない

これ自分が実装した機能なのでホント申し訳ないんですけど、今なら gradle/gradle-build-actionを使ったほうが良いです。 利点は公式が説明しているので読んどいてください。

github.com

spotlessApplyして差分が出たらSuggest Changeする

reviewdogが action-suggesterという素敵なアクションを提供しています。GitHub Actionsでフォーマッタを実行して差分ができた状態でこのアクションを実行すると、GitHub Pull RequestのSuggest Change機能を使ってフォーマットを提案してくれます。

github.com

フォーマット適用箇所が多いと手元で ./gradlew spotlessApplyしたほうが早いなってケースもまぁあるとは思うんですが、やって損は無さそうです。 もちろんSpotlessに限らずktlintやPrettierのような他のフォーマッタでも利用できます。

まとめ

だいたいこんな感じじゃないですかね。リリース自動化には release-please とか semantic-release とかお好きなソリューションをご利用いただければと思います。

on:pull_request:push:branches:- main

jobs:build:runs-on: ubuntu-latest
    permissions:contents: read # actions/checkoutのために必要pull_requests: write # reviewdog/action-suggesterのために必要steps:- uses: actions/checkout@v3
      - uses: gradle/wrapper-validation-action@v1
      - uses: actions/setup-java@v3
        with:distribution: microsoft
          java-version:17 # toolchainで指定したバージョンと同じものを使う- uses: gradle/gradle-build-action@v2
        with:arguments: spotlessApply build --scan
      - uses: actions/upload-artifact@v3
        if: always()
        with:name: Gradle reports
          path: build/reports
      - uses: reviewdog/action-suggester@v1
        if: github.event_name == 'pull_request'with:github_token: ${{ secrets.GITHUB_TOKEN }}
          tool_name: spotless

またワークフロー最適化の観点ではGradleのRemote Build Cacheが非常に効果的です。勤め先ではgradle-gcs-build-cacheを使ってGoogle Cloud Storageを活用した最適化を行っています。


Viewing all articles
Browse latest Browse all 157

Trending Articles