Help us understand the problem. What is going on with this article?

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

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メインでいいかなと思ってます。

reireias
ヘルステック系ベンチャーのMENSAフルスタックSRE
https://reireias.github.io/
medpeer
国内医師の3人に1人が参加する国内有数のUGC型ドクタープラットフォーム「MedPeer」や遠隔医療サービスなどを運営するヘルステックカンパニー
https://medpeer.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした