1. HOME
  2. ブログ
  3. IT技術
  4. 開発効率を少しだけ上げるGithubActionsの便利な使い方

開発効率を少しだけ上げるGithubActionsの便利な使い方

普段使ってるGithub ActionsのWorkflowを紹介

(株)ライトコードでモバイルアプリケーションメインで色々開発している笹川(ささがわ)です!

今日は普段私が業務や個人開発で利用しているGithub ActionsのWorkflowをいくつか紹介したいと思います。

リリースノートを自動で生成してくれる

release-drafterというWorkflowを使えば簡単にできます。

これは結構有名で使っている方も多いと思います!

使い方としては.github/.github/workflows/にそれぞれ release-drafter.ymlを作成し、ぞれぞれ下記の様に記載します。

.github/release-drafter.yml

こちらではPRに付けたLabelを元にどのような変更のカテゴリになるかの設定やリリースバージョンをどの単位で自動生成していくかを設定しています。

.github/workflows/release-drafter.yml

こちらではどのタイミングでリリースノートの生成を行うかの定義をしています。

こちらの設定だと developブランチにマージされたタイミングで実行されるようになっています。

運用によっては mainブランチにするなどができます。

正直、Workflowの中では少し手間な部分がありますが、それでも自分で「あれ、このリリースに含まれるのはどれだっけ?このPRはどんな修正だっけ?」と全てのPRを再確認するよりは圧倒的に作業効率は良くなりますね!

PR作成時にDangerを動かしてLint実行

DangerというRuby製のLintを実行してくれるツールがあります。

こちらはGithub Actionsが登場する前から広く使われており、様々な言語やFWで使うことができます。

少し名前が物騒ではあるのですが、とても便利なのでぜひ知っていただきたいです。

今回はAndroidアプリケーション開発で良く使われているKtlintを利用する想定で紹介します。

他の言語についてはDangerのドキュメントに利用方法が書いてありますので、そちらをご覧ください。

.github/workflows/pull_request.yml

こちらはrelease-drafterみたいに専用のworkflowがないので、自分でymlに書いていく必要があります。

developブランチとfeatureブランチに対してPRが作成されたら実行され、Dangerのインストールと実行までを定義しています。

これだけだとDanger自体の実行ができないので他に必要なファイルも用意します。

私の環境ではCLIツールのFastlaneを利用しているので、そちらも導入しております。

モバイルアプリケーションじゃない場合はFastlaneは使わず、Dangerのドキュメントにある様にymlファイルを定義してもらえれば動くはずです。

他の必要なファイルは複数あるのでこれらのファイルをそれぞれ参照してください。

Androidのネイティブアプリではコピペでほぼ利用できるかと思います。

私の環境ではUnitTestも同時に実行しているので、そちらが邪魔であればFastfilegradle(task: "library:test")を削除してください。

mainブランチとdevelopブランチの差分を自動でPR作成してくれる

hotfixなどでmainブランチにマージした場合、developブランチにマージする必要がありますが、意外と忘れがちです。

これを自動生成してもらうことで差分が開いてからの取り込みを防ぐことで、コンフリクトや先祖返りなどのリスクも減らすことができます。

.github/workflows/master-diff.yml

こちらもrelease-drafterみたいに専用のworkflowがないので、自分でymlに書いていく必要があります。

pr_titlepr_bodyは好きに記載してください。日本語も書けますよ。

pr_labelはLabelを作成し、それに紐づく様に設定しています。

おまけ READMEの肥大化はGithub Pagesを使おう

アプリケーションが育ってくるとREADMEに記載される内容が肥大化していきます。

Wikiを使う方法もありますが、Git管理したいケースもあると思います。

その場合はGithub Pagesを使えば解決できます!

登場した時点ではpublicリポジトリのみの対応でしたが、今ではprivateリポジトリでも利用可能になっております。

詳しい設定方法などはGithub Pagesの公式ドキュメントを参照してください。

笹川はソースコードのドキュメント(Jdoc)の様なものをKotlinで使える様にして利用しております。

https://sasa-nori.github.io/common-ktx/

人の手でやらなくていいのはやらなくていいいんです!

いかがだったでしょうか?

今日にでもコピペで使えるものもあったかもしれませんね。

笹川の個人開発しているOSSでも今回のWorkflowは全て導入されておりますので、そちらを参考にしてください。

https://github.com/sasa-nori/common-ktx

OSS開発した際の記事はこちら

Androidのライブラリを作って公開してみた

書いた人はこんな人

笹川(エンジニア)
新潟生まれ新潟育ち本業はモバイルアプリエンジニア。
日々、猫(犬)エンジニアとして活躍中!

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア