LoginSignup
1
0

More than 3 years have passed since last update.

Go言語でCircleCIの環境変数の登録を自動化する

Last updated at Posted at 2021-01-10

CircleCIで環境変数の登録を自動化するプログラムを書いたので、作成した内容を書いていきます。

課題

CircleCIの環境変数の設定の際にブラウザからポチポチして登録していたのですが、単純作業で登録が面倒なのと、誤操作により設定ミスが発生することがありました。

CircleCIの環境変数について

まず環境変数の設定方法のバリエーションについてです。
大きくは、以下の6つのレベルで環境変数を設定することができます。今回の対象は、Project Environment Variablesの設定に関しての記事になります。
登録方法は、Build > Project > Settings で設定します。(もしこれ以外の登録方法をご存知の方がいらっしゃいましたら教えていただきたいです。)

  • Global Environment Variables
  • Project Environment Variables
  • Job Environment Variables
  • Container Environment Variables
  • Step Environment Variables
  • Bash Environment Variables

解決策

今回はGo言語のagoutiというライブラリとChromeDriverを使用して、ブラウザ操作を自動化します。
https://agouti.org/
https://chromedriver.chromium.org/downloads

全体の処理のフロー

① CircleCIのGithubログイン認証を行う
https://circleci.com/login/

② 環境変数設定ページに遷移

③ Add Environment Variableをクリックし、入力フォームを開く

④ 入力フォームにNameとValueを入力する。

⑤ 登録完了

必要な設定

①ChromeDriverをインストールする。

$ brew install chromedriver

②constに設定されている各変数に任意の値を入力してください。

  • GithubUserName ... あなたのGithubのユーザー名を入力してください。
  • GithubPassWord ... あなたのGithubのパスワードをを入力してください。
  • Organization ... 個人開発の場合はGithubのユーザー名、組織開発の場合は組織名を入力してください。
  • Repository ... 対象のリポジトリ名を入力してください。
const (
   CircleCIURL    = "https://circleci.com/login/"
   GithubUserName = "あなたのGithubのユーザー名"
   GithubPassWord = "あなたのGithubのパスワード"
   Organization   = "組織名"
   Repository     = "リポジトリ名"
)

③登録する環境変数の準備
下記のmapでkeyに環境変数名、valueに登録する値を設定してください。

func setVariables(page *agouti.Page) error {
    vars := map[string]string{
        "HOGE": "hoge",
        "PUGE": "puge",
        "FUGA": "fuga",
    }
...
}

全体のソースコードはGithubに上げてありますので、下記のURLからご確認ください。
https://github.com/kozy0810/agouti-circleci

ローカルで実行

上記の設定が完了しましたら、ローカルで下記のコマンドを実行してください。

$ go run main.go

処理が完了すると下記のように環境変数の登録が完了します。
スクリーンショット 2021-01-10 12.09.40.png

まとめ

Go言語でCircleCIの環境変数の登録を自動化する方法について記述しました。
ブラウザでポチポチして登録するより、時間やストレスを大きく削減できるかと思います。
使用する際には、機密情報になると思いますのでセキュリティには十分ご注意ください。
今回初めてQiitaの記事を書いてみました。
もし参考になりましたらLGTMをいただけると嬉しいです。

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