LoginSignup
6

More than 5 years have passed since last update.

GitLab CIの設定ファイルを手元でLintする

Last updated at Posted at 2017-05-16

GitLab CIの設定ファイルを手元でLintする

プライベートレポジトリ、CIツールが無料で使い放題ということで、最近GitHubからGitLabへお引越ししました。
https://gitlab.com/sei40kr
Travis CIからGitLab CIに引っ越すにあたって travis lint でできていた設定ファイルのLintがGitLabだとCLI上から行えなかったので、シェルスクリプトを書きました。

結論

python, jq がインストールされている必要があります。

#!/bin/sh

linter_api_url='https://gitlab.com/api/v4/ci/lint'

linter_dump_conf() {
  python -c "import json,sys;print(json.dumps({'content':sys.stdin.read()}))" < .gitlab-ci.yml
}

curl -sH 'Content-Type: application/json' "$linter_api_url" -d "$(linter_dump_conf)" | jq

これを gitlab-ci-lint.sh のような名前で、 .gitlab-ci.yml と同じディレクトリに設置します。
後は実行権限を与えて動かすだけ。

chmod +x gitlab-ci-lint.sh
./gitlab-ci-lint.sh

実行結果

Screenshot

オマケ: Travis CIと比較したGitLab CI

  • 標準機能は少ないですが、Dockerコンテナの知見やシェルの知識があれば細かくジョブを記述できます。Travis CIが grunt.js 寄りで、GitLab CIが gulp.js のようなイメージです。
  • 流石にジョブの開始までが早いです。いかに並列実行でジョブを高速化させるかは腕の見せ所です。

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
6