2018年2月19日月曜日

[CI] Codefresh の Use YAML from URL が便利だった

CI サービスのジョブの定義といえば YAML か WEB 上での設定がほとんどだと思います。
それぞれにメリットがあり、YAML の場合は as Code でコードと CI が紐づく点、WEB の場合は変更が容易な点でしょうか。

WEB 上で設定可能、かつ、その設定を YAML にエクスポートできるサービスもあります。
個人的には、この形がベストかなーと思っていて、
CI のステップを定義していくときはトライアンドエラーで何回も繰り返すことが多いので、WEB 上ですぐに変更・実行できるメリットが大きいです。
さらに、確定したステップを YAML としてエクスポートすれば as Code の恩恵も受けられます。
(最初から YAML 書くのはハードル高かったりしますしね)

Use YAML from URL
さて、先日 Codefresh を見直す機会ちょうどあり(その時の記事→「[CI] Codfresh で git clone に失敗した場合にすること」
そのときに気づいたのですが、Codefresh では「Use YAML from URL」で任意の URL を指定して、そこの YAML を使ってステップ定義することができます。
これは便利だなーと思いました。(公式ヘルプ

この機能を使うことで、Gist にある YAML を使うことができるようになります。
(履歴を残しつつ、リポジトリを汚さずに yaml の編集が容易にできるようになるので、個人的に嬉しい)
公式ヘルプでは、複数のパイプラインで1つの YAML を使う方法として紹介されています。
複数リポジトリで同じ YAML を使うケースでは管理が1つになるので、これまた便利です。

やり方
では、やり方を見ていきましょう。といっても、やることは簡単で、Gist で YAML を用意するのと、Codefresh の設定に Gist の URL を入れるだけです。

まずは、Gist で YAML ファイルを作成します。
作成したら、「Raw」ボタンを押します。


開いた URL を Codefresh に設定するのですが、ここで開かれるのはリビジョンを含んだ URL なので、そこの部分を削除した URL を使うと変更に追従できるようになります。

https://gist.githubusercontent.com/srz-zumix/38581f1437aa4239fcb7f7b2580cb33c/raw/0cfe000b27f15eb140bb92f3fa02215d56966303/iutest_codefresh.yml

https://gist.githubusercontent.com/srz-zumix/38581f1437aa4239fcb7f7b2580cb33c/raw/iutest_codefresh.yml


URL をコピーしたら、Codefresh の設定を変更しましょう。
「Pipelines」の「WORKFLOW」で YAML を選択し、「Use YAML from URL」をチェックします。

「YAML URL」にアドレスを入力します。先程コピーした URL を貼り付けましょう。(今回は GIst でしたが、yaml ファイルが取得できれば他のアドレスでも可能です)
設定を保存したら、完了です。

最後に
この機能便利なので、他のサービスでも使えたらうれしいですね。特に設定が YAML のみで WEB 上で設定できないサービスにあると嬉しいです。
(inline YAML より対応もしやすそうだし)
Codefresh は今無料枠を使い切ってしまって何もできないので、回復したらこの機能を積極的に使っていこうと思います。

今回は以上です。
では。

0 件のコメント:

コメントを投稿