0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Jenkinsで.envを外部groovyから読み込む方法

Last updated at Posted at 2024-12-07

はじめに

同じEnv parameterを異なるrepositoryに入れたい!という要望が来ました。このweb_backend とweb_frontendはデプロイ先サーバが同じでもディレクトリが異なるので片方の.envにアクセスして読み込むことはできない、という関係性です。

## web_backend repository
vim .env
ENV = development
CLIENT_ID = "test%develop898"

## web_frontend repository
vim .env
ENV = development
CLIENT_ID = "test%develop898"

また、2つのrepositoryの.envファイルに同じパラメータを入れると管理が2重になって面倒...ということでJenkinsで管理しちゃおう作戦。その中でJenkinsのenvパラメータを外部groovyから読む方法を試したので書いていきます。
今回のenv parameterはユーザに見えてもOKな値とします。

開発

Jenkinsからアクセスできる場所にgroovy fileを作ります。今回は例えばdev.groovyを作り、中にenvとして設定したいパラメータを書いていきます。

vim env/dev.groovy

env.ENV="development"
env.CLIENT_ID="test%develop898"
...etc.

あとはJenkinsのscriptの中でload($groovy_file)をするだけです。

script {
        $groovy_file_path="/path/to/env/env-dev.groovy"
        load "${groovy_file_path}"
        echo "${env.ENV}"
        ehco "${env.CLIENT_ID}"
}

これでパラメータを表示できたかと思います🥳
簡単!

おわりに

私たちのpipelineでは実際env parameterを使うのはrakeタスクなので、ここからrakeタスクに渡してあげる必要があります。例えば↓

やっぱりenv parameterが増減した時に面倒.... rakeタスクと、タスクを呼んでいるすべてのJenkins scriptの更新が必要ですね。管理が面倒なので簡単にしたいという目的と離れちゃうので、私は今回は使わないことにしました。

セキュリティ的に見せてはいけないパラメータならJenkinsのCredentialに登録すると良いかもですね。

参考になれば幸いです🍎

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?