gae-ayaml-env
TypeScript icon, indicating that this package has built-in type declarations

0.0.20 • Public • Published

Google App Engine - app.yaml environment variable generator for CI / CD systems

Generates an app.yaml file from a template and environment variables, designed for use with GitLab's CI / CD system.

oclif Version Downloads/week License

Usage

Set your environment variables in GitLab (or other system), prefix variables you'd like to persist in app.yaml with "APP_", for example:

Environment variables in GitLab

Create an app.template.yaml file include everything sans environment variables

runtime: nodejs10
env: standard

automatic_scaling:
  min_instances: 0
  max_instances: 2

service: default

env_variables:
  NODE_ENV: 'production'

In your CI / CD process run gae-ayaml-env to emit a populated app.yaml file, make sure you do not commit an actual app.yaml file as it will be overwritten.

Example for GitLab

deploy:
  image: 'rlancer/gcloud-node:LTS-229'
  script:
    - npm i
    - npm run build
    - npx gae-ayaml-env
    - echo $GCLOUD_SERVICE > /tmp/$CI_PIPELINE_ID.json
    - gcloud auth activate-service-account --key-file /tmp/$CI_PIPELINE_ID.json
    - gcloud --quiet --project $GCLOUD_PROJECT_ID app deploy app.yaml
  only:
    - prod

The system will write an app.yaml file fully populated with all the variables prefixed with "APP_".

runtime: nodejs10
env: standard

env_variables:
  APIMARKET_FROM: '******************'
  DB_DATABASE: '******************'
  DB_HOST: '******************'
  DB_PASSWORD: '******************'
  DB_USER: '******************'
  NODE_ENV: production
  SLACK_APP_ID: '******************'
  SLACK_BOT_TOKEN: '******************'
  SLACK_CLIENT_ID: '******************'
  SLACK_CLIENT_SECRET: '******************'
  SLACK_OAUTH_REDIR: '******************'
  SLACK_SIGNING_SECRET: '******************'
  SLACK_TOKEN: '******************'
  SLACK_VERIFICATION_TOKEN: '******************'
automatic_scaling:
  max_instances: 2

Hide Output in Console

to hide the output of the generated file in the console you can use the flag: no-output

Example using npx:

npx gae-ayaml-env --no-output

Special thanks

to @dannyzen from Google for helping Collaborizm move to GCP.

Package Sidebar

Install

npm i gae-ayaml-env

Weekly Downloads

36

Version

0.0.20

License

MIT

Unpacked Size

8.39 kB

Total Files

9

Last publish

Collaborators

  • rlancer