LoginSignup
61
46

More than 3 years have passed since last update.

GitHub Actions、Travis CI、CircleCIの気になる部分の比較

Last updated at Posted at 2019-08-28

GitHub Actionsのβ版が利用できるようになったので、実際にさわりながら確認してみました。

CIツールを選定する際に気にしている観点でGitHub ActionsTravis CICircleCIを比較してみました。
(主に個人開発時のCIツールとしての観点が強いかと思います)

なお、いずれのCIツールも機能や仕様は本記事作成時点のものなのでご了承ください。

間違っている部分はコメント等で指摘いただけると助かります。

料金

個人開発だと気になる料金です。

GitHub Actions

publicリポジトリ:無料
privateリポジトリ:月2000分まで無料

Travis CI

publicリポジトリ:無料
privateリポジトリ:料金プラン

CircleCI

無料プラン:2500クレジット/週 = 2000分/月 (1vCPU/2GBのスペックの場合)
料金プラン

並列ジョブ数

DependabotによりPRが量産されるので、意外と重要だと思います。

GitHub Actions

1リポジトリ20ワークフローまで可能

Travis CI

記述をドキュメントから見つけられず
状況次第という記述あり

CircleCI

無料プランなら1並列まで

OS

各サービスとも、Linux, macOS, Windowsに対応しているようです。
(個人的には最新と1個前のLinuxに対応しているなら十分ですが)

GitHub Actions

  • ubuntu-latest, ubuntu-18.04, or ubuntu-16.04
  • windows-latest, windows-2019, or windows-2016
  • macOS-latest or macOS-10.14

ドキュメント

Travis CI

  • Ubuntu Bionic 18.04, Ubuntu Xenial 16.04, Ubuntu Trusty 14.04, Ubuntu Precise 12.04
  • macOS
  • windows

CircleCI

  • Linux(Docker or Machine)
  • macOS
  • windows: 2019/08からサポートされ始めたようです blog

ドキュメント

各言語の実行環境

プログラミング言語の実行環境のサポート状況です。
これも個人開発ならメジャーな言語の最新版がサポートされていれば十分といったところ。
設定が楽かどうかも重要です。

GitHub Actions

下記のようにstep内で言語のセットアップを実施する。

jobs:
  test:
    name: test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
      - uses: actions/setup-node@v1

ドキュメント

Travis CI

かなりの数に対応している。
指定方法も下記のようにシンプル。

language: node_js

ドキュメント

CircleCI

それなりの数がサポートされている。
指定はDockerのイメージで指定する。

jobs:
  build:
    docker:
      - image: circleci/python:3.6.2-stretch-browsers

ドキュメント

Slack通知

CI結果は当然Slackに通知したいですよね。
Incoming webhookのURLの管理方法が楽だと嬉しい。

GitHub Actions

デファクトスタンダードは未だ無さそう。
公式での対応が待たれる。

いちおう、いくつか調べた範囲では下記ブログで紹介されているプラグインがよさそう。
GitHub Actions(beta)向けにslack通知プラグインを作った

webhookのURLはGitHubのリポジトリにSecretを登録する機能があり、それをGitHub Actionsから参照できる。

Travis CI

SlackにTravisCIのアプリを追加し、tokenを発行する。
travisのUI上 or CLIからtokenを暗号化し、yaml中に指定する。
下記のようにシンプルに記述できる。

notifications:
  email: false
  slack:
    secure: <暗号化されたtoken>

CircleCI

WebUIからIncoming Webhook URLを指定する。

まとめ

  • GitHub ActionsはIssueやPRといったGitHubの要素とCIを連携しないなら、いまのところそんなにメリットなさそう
  • 設定ファイルのシンプルさではTravis CIが一歩リード
  • publicリポジトリで個人開発する範囲ならCircleCIの並列数がちょっと弱い
  • CircleCIにはorbsというレシピの共有機能があるので、これをいかに活用するか次第

ということで、個人的にはまだしばらくTravis CIメインでいいかなと思ってます。

61
46
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
61
46