はじめに
最近、CircleCI の公式 YouTube チャンネルを見つけ、動画での学習を試しています。
その中で、CircleCI の設定変更を git コミットせずに試すチュートリアル動画があったので、動画を観つつ検証した手順を残しておこうと思います。
tl;dr
- CircleCI は、Githubリポジトリ、リポジトリのリビジョン、CircleCI の API トークンを指定さえすれば、いちいち
config.yml
を git で更新しなくても HTTPS API 経由で実行検証できる
前提
CircleCIのセットアップ
CircleCI 公式ドキュメントのFirst CircleCI Build は実施していて、最低限の CircleCI 実行は試せるものとします。
参照したチュートリアル動画
今回の記事の内容に関する動画です。
Run builds on CircleCI using a local config file - YouTube
チュートリアル動画の補足記事
チュートリアル動画の内容に関する補足は下記に載っています。
検証手順
ここからは動画の内容に従って検証していきます。
ローカル環境にディレクトリ作成
ローカル環境にCircleCIの設定ファイルと、curl を実行するスクリプトを準備できるよう、ディレクトリを作ります。
$ mkdir -p circleci-tools/pushConfig
config.yml をローカルに作成
CircleCI で実行する処理を記述する config.yml
を準備します。
$ vim circleci-tools/pushConfig/config.yml
version: 2
jobs:
build:
machine: true
steps:
- run: echo 'test'
curl コマンドのスクリプトを作成
ローカルの config.yml
を基に CircleCI を実行するためのスクリプトを作成します。
$ vim circleci-tools/pushConfig/pushConfig.sh
GITHUB_REVISION=XXXX
curl --user ${CIRCLE_TOKEN}: \
--request POST \
--form revision=${GITHUB_REVISION} \
--form config=@config.yml \
--form notify=false \
https://circleci.com/api/v1.1/project/github/gotchane/circleci-101/tree/master
CircleCI の API 実行を、curl コマンドから実施しています。
GITHUB_REVISION
は CircleCI を実行したい Githubリポジトリのコミットのハッシュ値を指定します。
CIRCLE_TOKEN
には後ほど取得する CircleCI の API トークンを環境変数で指定します。
API の URL はgotchane/circleci-101
の部分を環境に応じてユーザー名・リポジトリ名共に変更します。
CircleCI の API トークンを取得する
CircleCI の GUI コンソールを開き、画面右上の「User settings」をクリックして User Settings 画面に移動します。
左側のサブメニューから「Personal API Tokens」をクリックし、新しい API トークンを作成します。
作成した API トークンは控えておき、circleci-tools/pushConfig/pushConfig.sh
を実行する前に環境変数として設定しておきます。
$ export CIRCLE_TOKEN=XXXXX
スクリプト実行
CircleCI の API トークン、git のリビジョンを curl コマンドに反映したら、スクリプトを実行します。
$ cd circleci-tools/pushConfig
$ chmod +x pushConfig.sh
$ ./pushConfig.sh
実行確認
ローカルの config.yml
を基にCircleCI が実行されているか確認します。
終わりに
今回検証をやってみて、いちいちコミットしなくても config.yml
を検証できるのは便利だなと思いました。
また今回は動画を観ながら検証をやってみたのですが、理解が進みやすかったなと思います。ただ、動画だけでなく、ドキュメントや関連ブログ記事といった補助的な情報にも触れていくといいなと思いました。