1
0

More than 1 year has passed since last update.

renovateのconfigのvalidateをCI(CircleCI)で行う

Posted at

Renovateとは

DependaBotのようなライブラリのバージョンのアップデートをしてくれるサービス・ツールです。
https://www.whitesourcesoftware.com/free-developer-tools/renovate/
https://github.com/renovatebot/renovate

configのvalidateとは(やりたいこと)

Renovateの設定は、yamlファイルに書くのですが、実際動かしてみるまでその記述があっているのかなどの確認ができないと設定ファイル書くのが大変なので、CIでチェックできるようにしたいところです。
※ configファイルがvalidかどうかなので、設定が意図通り動くかのチェックはできないです。

この記事では、それをcircleCIで動かす方法についてです。ですが、他のCIツールやローカルで動かすときにも参考になると思います。

要約

  • 公式Documentでは、CircleCIのOrbを使う方法が書かれている。
  • しかし、3rdPartyのOrbなので、利用しづらい
  • npmなどでvalidatorが公開されているので、それをCIで動かせば良い

公式で書かれてる Orb を使う

version: '2.1'
orbs:
  renovate: daniel-shuy/renovate@2.1
workflows:
  lint:
    jobs:
      - renovate/validate-config

CircleCIのorb(共通で利用できる設定みたいなもの)があって、Renovateのdocumentでもそれを利用するように書かれてるので、基本的にはそれを参考にすれば動かすことができます。
しかし、3rd-party(非公式)なOrbのため、3rd-patyのorbを許可していないとと以下のようにエラーになってしまいます。

#!/bin/sh -eo pipefail
# Orb daniel-shuy/renovate@2.1 not loaded. To use this orb, an organization admin must opt-in to using third party orbs in Organization Security settings.
# 
# -------
# Warning: This configuration was auto-generated to show you the message above.
# Don't rerun this job. Rerunning will have no effect.
false

Exited with code exit status 1
CircleCI received exit code 1

3rd-party orbを許可するには

CircleCIの設定で、3rd-partyのorbを許可する設定があるので、そこで許可することができます。
:warning: 注意 :warning: 3rd-partyのorbを許可していいかは、各自責任を持って判断をしてください!(デフォルトは許可しない設定になっています)
3rd-partyのorbを許可するのはRepository個別の設定ではなく、Organizationの設定です。
しかも、特定のorbを許可するような設定ではなく、3rd-partyのorbすべてを利用可能になってしまいます。
個人開発ならあまり問題ないと思いますが、チーム・会社でのorganizationの場合、これを有効化するというのはあまり好ましい状態ではないと思います。

Note: In order to use uncertified orbs, your organization’s administrator must opt-in to allow 3rd-party uncertified orb usage on the Organization Settings > Security page for your org.

image.png

Orbを使わずに動かす

Orbを使わず validator を自前で動かすことができます。
ありがたいことに、npm package, docker image, GitHub actionsなどでvalidatorが公開されています。
https://docs.renovatebot.com/#renovate-development-and-use

たとえば、
npm packageを利用してvalidateを動かそうとすると

$ npm i -g renovate # yarn global add renovate
$ renovate-config-validator

という感じです。

ので、これらを CircleCI で動くように書いてしまえばOKとなります。

CircleCI で Renovate の config の validator を動かす

version: 2.1

executors:
  default:
    working_directory: ~/repo
    docker:
      - image: cimg/node:lts

jobs:
  lint:
    executor: default
    steps:
      - checkout
      # renovate-config-validator を install したりなどはよしなに書く必要があります。
      - run: yarn renovate-config-validator

workflows:
  build:
    jobs:
      - lint

最終的にはこのような感じです。
(renovate-config-validatorのinstallやnodeのversionとかは調整してください)

1
0
0

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
1
0