thumbnail

GitHub Actions で作業を効率化

最近CI/CDサービスが標準サポートされると発表されたGitHub Actionsですが、いろいろ試してわかった注意点などをまとめておきます。

色々試したリポジトリ

参考リンク

試したアクション

GitHub Project Automation+

Issue や Pull Request を作成した際に GitHub Project に自動でアサインしてくれます。

PR Labeler

Pull Request の名前で Label をつけてくれます。

Pull Request Labeler

Pull Request に含まれるファイル名で Label をつけてくれます。

Release Drafter

前回のReleaseから今までに含まれる Pull Request から GitHub Release の下書きを自動生成してくれます。

Action Slack

Slackに結果を通知してくれます。

試せるアクション

Marketplace にいろいろあります。

作成したアクション

Release GitHub Actions

GitHub Actions を公開する際に必要なフローを自動化します。

TOC Generator

目次の作成を自動化します。

Auto card labeler

GitHub Project のカードの移動で Label の付け外しを行います。

Assign Author

Issue や Pull Request の作成者を Assignees に登録します。

設定した結果

プルリクエスト

赤で囲んだ箇所は GitHub Actions によって設定されたものです。

手動で何もしなくてもラベルなどが勝手に付与されます。

CI

プッシュの度にCIを回すことができます。

Branch protection と組み合わせることで、すべてのチェックが通るまでマージできなくすることが可能です。

GitHub Releases

いい感じに下書きを作成してくれます。

人間がやることは下書きを確認し、必要であれば修正して Publish release ボタンを押すだけです。

目次作成

Readme.md の目次も自動で作成できます。

項目を追加・編集・削除した場合もそれに従って更新されます。

アクション作成時の注意点

公開する際に必要なファイル

JavaScript版の話ですが、公開して使用してもらうためには、すべての依存モジュールやビルドされたファイルが必要です。

これによってアクション実行時はビルド等の時間が無くなり、これまでのDocker版よりも非常に起動が速くなっています。

通常、開発用のブランチには node_modules や ビルドしたファイルはコミットしませんが、ワークフローで使用してもらうためにはなくてはなりません。

そのため、開発用とは別に公開用ブランチを作成し、リリースのタイミングでビルドしてタグをつける作業が必要です。

Release GitHub Actions はそれらのフローを自動化します。

バージョン

ワークフローの uses で使用するアクションはブランチ名やタグ名などを指定可能ですが、タグ名とブランチ名が同じ場合、タグ名が優先されるようです。

アクション使用時の注意点

数値の扱い

以下のように matrix ビルドでPHPのバージョンを指定すると正しく動作しません。

    strategy:
      matrix:
        php: [7.0, 7.3, 5.6]

7.0 は 7 として扱われるためです。

文字列にすることで正しく動作させることが可能です。

    strategy:
      matrix:
        php: ['7.0', '7.3', '5.6']

古いPHPを使用

ubuntu-latest には PHP5.6 や PHP7.0 はインストールされていません。

それらを使用する場合は ubuntu-16.04 を使用します。

使用可能なソフトウェアは以下のページで確認できます。

その他もろもろ

バッジ

公式にサポートされています。


prev articleprev thumbnail
【Gutenberg】ブロックエディタに文字数カウントを常時表示する
composerのscriptsで作業効率化
next thumbnailnext article
arrow