Natural Preference for Minification
    Have ideas to improve npm?Join in the discussion! »

    gae-yaml-env

    1.1.0 • 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.

    Version Downloads/week License

    Usage

    gae-yaml-env [file]
    
    Generate the app.yaml file for App Engine
    
    Positionals:
      file  The name of the template file, use 0 for stdin
                                                      [default: "app.template.yaml"]
    
    Options:
      --prefix   Environment variable prefix, defaults to APP_     [default: "APP_"]
      --service  Change the service name in the yaml
      --version  Show version number                                       [boolean]
      --help     Show help                                                 [boolean]
    

    Gitlab Example

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

    generate_app_yaml:
      image: node:14-alpine
      script:
      - npx gae-yaml-env > app.yaml
      artifacts:
        paths:
          - app.yaml
      only:
          - master
     
    deploy:
      image: gcr.io/google.com/cloudsdktool/cloud-sdk:alpine
      dependencies:
        - generate_app_yaml
      script:
        - gcloud auth activate-service-account --key-file $GCLOUD_KEY
        - gcloud --quiet --project $GCLOUD_PROJECT_ID app deploy app.yaml
      only:
        - master

    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

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

    Install

    npm i gae-yaml-env

    DownloadsWeekly Downloads

    19

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    10.5 kB

    Total Files

    10

    Last publish

    Collaborators

    • avatar