簡體   English   中英

Google App Engine 和 Travis CI 上的 NodeJS 環境變量

[英]NodeJS environment variables on Google App Engine and Travis CI

我有nodejs應用程序並使用Travis CI進行持續集成(通過 eslint 運行測試和代碼檢查)。 在我的項目中,我在.env文件中使用了一些環境變量(jwt 密鑰、mongodb 憑據等)

現在我想在將development分支合並到master后設置持續部署。 為此,我已經調查了在谷歌上找到的 Travis 文檔和其他指南並進行了一些設置。 我的.travis.yml文件:

language: node_js
node_js: lts/*

cache:
  directories:
  - node_modules

script:
- yarn install
- yarn test
- yarn lint

notifications:
  email: false

deploy:
  provider: gae
  project: gae-project-name
  skip_cleanup: true
  keyfile: gae.json
  on: master

env:
  global:
  - secure: FlwzKDN8HXl1cuGBhtQwbm/GjbOVMcLfEhcJkKky+2aGIhe4BOSxjMynrCts7eM53a87GMnyJXsmFxKOeO+w8RYqHVixD77duejV2o+XkoZL1QWORqiSMyK8dvLNc+lqoJ1Lf+qFqOOQCq1TxJ4W5ycFs82/hJMlMuu8jf2fxGhENoDwcARivZ0Fsrq/4/JA+YS3JjG6dqr78M7VwhrKv4mk4M5wMHiacHpKPhHib56v//wwUtsgYnyVLV0n+CPBlm6yh2aWbESt+YLU4uar39gumpG5bzp4+F01qDrWQwi3ctArOYZ5sKHgSfHZDP4jOEcKF4pYWoUlMqkT1vInmK27jnoiiCjZzQ6sfLw2O8eTb104Rlbgae4ttY38KWNE5N5w37DvSV5VzkAZ5xJuXb4j+GF/YmDep5tKNFKgjyUkFeNb7gXY/9INaJlCMiw6guQ6dYRoQlHCbv43jLnxy75E5PHPKMKHkZEi1nfvCKBYgJhIZxZ1PEjWyrupvnt+eyV0IxC7e9vCr/Ih8GkUEPa/uFVHAhDzr5x11OxQogOlSbh+G1kytUS2LhUyxqnQeFwo0DZACML/GPW41r2iXmIwI+SZzSVuT/01ZTRJNiS56UfnncI/+q5rbHR/1muTArnEqbeCISOP0YN2cBF4MefelXuNmjy2IJop56vea/U=
  ...other variables

這樣的配置效果很好:如果在testlint命令期間沒有發生錯誤,項目將部署到 Google App Engine。

但是我遇到了一個問題:我無法安全地導出我的 env。 在 CI 過程中 GAE 構建的變量,至於構建,它從master庫中獲取文件,其中.env不存在(具有敏感數據的文件在.gitignore )。 因此,雖然應用程序已部署,但它不能作為 env 工作。 變量不存在。

我沒有找到如何使用 Travis CI 安全地將環境變量導出到 GAE 的方法,希望得到您的幫助。

PS,您可能會注意到我已經加密了我的 env。 .travis.yml變量。 我是為了運行使用環境細節的測試而制作的。 但我不知道如何將它們導出到 GAE 構建過程。

處理這個問題的方法很少。 我更喜歡 ci 中的 ENV 變量,將它們放入目錄中,然后刪除。

 echo "$ENV_DEVELOP" > ./.env
 echo $APP_ENGINE_TEST_KEY > /tmp/$CI_PIPELINE_ID.json

在管道期間執行類似的操作,然后在從系統中部署進程后將其刪除

 rm /tmp/$CI_PIPELINE_ID.json
 rm ./.env

此外,如果您不想在管道的 envs 中的任何位置存儲憑據,您可以創建基本 https 服務器,該服務器將根據請求為您檢索 env 示例,並使用提交哈希的 auth。

您可以為推送事件創建一個鈎子,並在推送時將提交哈希發送到您的服務器並將其存儲在某個文件中,之后,當獲取 env 的時間到來時,使用 deployment_commit_hash 作為授權從您的管道直接卷曲到服務器,並檢查保存的值:) 祝你有美好的一天^_^

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM