Documents
CircleCIの使い方
CircleCIはやっはり便利だわ。って言う話になります。 Azure Pipelinesもいいですが、あれ中身を見るとただのRsyncでした。ぶっちゃけ自分でShell書いた方がマシなんじゃないかと思いましたが、CircleCIもおそらく中身は同じようなものなのかもしれないです。
CircleCI
Free版では6000分(100時間)までのビルドが無料で可能になっています。それ以上の時間は有料ということになります。小規模なプロジェクトであれば十分な時間でしょう。(ちなみにAzure Pipelinesは完全に無料だったはずです。)料金プランはこういったものになります。
最も楽なのはGithubアカウントや Bitbucketでログインすることです。登録のリポジトリが読み込まれてすぐにプロジェクトを立ち上がられる準備ができます。リポジトリの登録の手間が省けます。
さてCircleCIは何をしてくれるのかというと、テストとビルド、デプロイです。この作業は複数回続くと本当に面倒臭くなるので、自動化しておきたい。お金を払ってでも自動化しておきたい。そういったツールがCircleCIになります。
Hello world的な設定をしてみる
ログインしてProjectの項目を開くと、自身のリポジトリの一覧が現れます。ここからリポジトリを選択するとProjectが作成できます。ここでは例として「circleci」というテスト用のリポジトリを作成してCircleCIのプロジェクトとしてみます。
一覧に現れたリポジトリから「circleci」を選択します。
それから「Faster: Commit a starter CI pipeline to a new branch」を選択してみます。ブルーのSet up Projectを設定します。これで設定は終わりです。Loadingがはじまって、しばらくするとSuccessというふうになります。これで完了です。
ここでの動作を確認してゆきます。WorkflowといわれるものがCircleCIの実行枠のいちばん大きな枠になります。CircleCIではWorkflowを実行します。ここでは「say-hello-workflow」というものが実行されたと思います。そしてそのWorkflowの配下にJobが表示されます。今回はJobがひとつしかないのですが、通常はWorkflow配下に複数のJobが実行されます。
今回のこのHello world的な実行は実は何もしてません。リポジトリがあって、それをプロジェクト化し殆ど空のconfig.ymlを実行するというものになります。なので必ず成功します。
これでCircleCI風のHello worldは終わりですが、 Gitのリポジトリの方を確認してみてください。circleci-project-setup というブランチが作成されてブルリクエストが来ていると思います。先程の CircleCIの実行でPRが作られました。CircleCIは.circleci/config.yml
で殆どの設定をします。これはコミットして構いません。ちょっと中身を見てみます。
# Use the latest 2.1 version of CircleCI pipeline process engine.
# See: https://circleci.com/docs/2.0/configuration-reference
version: 2.1
# Define a job to be invoked later in a workflow.
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
jobs:
say-hello:
# Specify the execution environment. You can specify an image from Dockerhub or use one of our Convenience Images from CircleCI's Developer Hub.
# See: https://circleci.com/docs/2.0/configuration-reference/#docker-machine-macos-windows-executor
docker:
- image: cimg/base:stable
# Add steps to the job
# See: https://circleci.com/docs/2.0/configuration-reference/#steps
steps:
- checkout
- run:
name: "Say hello"
command: "echo Hello, World!"
# Invoke jobs via workflows
# See: https://circleci.com/docs/2.0/configuration-reference/#workflows
workflows:
say-hello-workflow:
jobs:
- say-hello
echo Hello, World!
を実行しているだけの簡素なものになっています。
これで最初の準備は完了です。