A gcloud utility built on top of gcloud to create and manage workflows

Usage no npm install needed!

<script type="module">
  import gcloudWorkflows from 'https://cdn.skypack.dev/gcloud-workflows';


GCloud Workflows

Table of contents


This tool is not part of the official @google-cloud packages and it does not replace the @google-cloud/workflows. Internally this tool uses gcloud and the workflows related commands.


This tool was created with the main purpose of facilitating the deployment process and continuous integration, in addition to proposing a tool to facilitate the management of this resource as well as to provide a way to implement environment variables into the workflows deployment process.


$ npm install -g gcloud-workflows


Currently this package only implements a deploy method


built on top of gcloud deploy

deploy method allow you to deploy one or more workflows using a definition yaml file, it receives a path argument which contains a set of instructions as the project id and the workflows to deploy, each workflow should contain the name or id with which it will be deployed and the source file, which can be either an absolute or relative path.


$ gcloud-workflows deploy --path="/absolute/path/config.yml"

Definition File

  stage: ${ENV_STAGE_NAME}
  project: ${ENV_PROJECT_NAME}

assignationStep: [string*]

  - name: [workflow-name-or-id]
    source: [source-file]
    assignationStep: [optional string]
  • assignationStep property defines the name of the step that will contain the variables assignation, it can be defined globally for all workflows or locally to apply on one specific workflow

Example Workflow

    - input
    - assignVariables:
          - project: ${env.project} # this value will come from the $ENV_STAGE_NAME
          - environment: ${env.stage} # this value will come from the $ENV_PROJECT_NAME


  • assignationStep property is required, can be global to apply for any workflow or local to apply on a specific one
  • variables inside assignation step must be enclosed with ${}as shown in the example
  • if the assignation step contains variables that doesn't have to be parsed they cannot use any of the following characters ${}
  • All workflows must be nested inside a main root
  • the resultant parsed file will be stored in /tmp/[workflow-source.yml]

Next Changes

  • Add examples
  • Add tests for deploy command
  • Enable root configuration
  • Fix tmp file storage