CircleCI appengineのドキュメントでは、パスワードを使用してデプロイを行うことを提案しています。パスワードを使用する代わりに oauth2 フローを使用するにはどうすればよいですか? Google パスワードを共有したくありません。
~/.appcfg_oauth2_tokens_java
CircleCI に環境変数として保存されているトークン データからファイルを生成しますか? もっと簡単な方法はありますか?
CircleCI appengineのドキュメントでは、パスワードを使用してデプロイを行うことを提案しています。パスワードを使用する代わりに oauth2 フローを使用するにはどうすればよいですか? Google パスワードを共有したくありません。
~/.appcfg_oauth2_tokens_java
CircleCI に環境変数として保存されているトークン データからファイルを生成しますか? もっと簡単な方法はありますか?
ユーザー関連の資格情報を使用したくない場合は、次のブログ記事で説明されているように、サービス アカウントを利用できます: Google App Engine と CircleCI による継続的デプロイ
Java用の最新のGAE SDK 1.9.34でこの方法で解決しました。
GCloud プロジェクトで作成したサービス アカウントの JSON キーを持つ Base64 でエンコードされた ENV 変数があると仮定します。
dependencies:
pre:
- echo $GOOGLE_CLIENT_SECRET | base64 --decode > ${HOME}/client-secret.json
そして、展開セクションで:
- $HOME/appengine-java-sdk-$APP_ENGINE_VERSION/bin/appcfg.sh -A $GCLOUD_PROJECT -M $GCLOUD_MODULE -V $BUILD_VERSION --service_account_json_key_file=$HOME/client-secret.json update $WAR_FOLDER
--service_account_json_key_fileは、appcfg.sh ヘルプを使用するときにオプションとして表示されないようですが、そこにあり、機能します。
AppEngine SDK ドキュメントを読むと、それが良いアプローチのように思えます。CircleCI でこれを行う組み込みの方法はありません。