#!/usr/bin/env bash set -xeo pipefail if test -v PULUMI_CONFIG_PASSPHRASE || test -v PULUMI_CONFIG_PASSPHRASE_FILE; then echo "PULUMI_CONFIG_PASSPHRASE is set, using a local login" pulumi login --local fi # Using Pulumi SaaS # We need to check for an existing stack with the name # If it exists, refresh the config # If it doesn't, create the stack if test -v PULUMI_ACCESS_TOKEN; then if (pulumi stack ls | grep -e "^${STACK_NAME}"); then echo "Stack exists, let's refresh" pulumi stack select ${PULUMI_STACK} # Could be first deployment, so let's not worry about this failing pulumi config refresh --force || true else echo "Stack does not exist, let's create" pulumi stack init ${PULUMI_STACK} fi else # Not using Pulumi SaaS, relying on local stack files if test -v PULUMI_STACK_CREATE && test ! -f Pulumi.${PULUMI_STACK}.yaml; then pulumi stack init ${PULUMI_STACK} fi fi case $PULUMI_RUNTIME in nodejs) npm install ;; *) echo -n "unknown" ;; esac pulumi up --stack ${PULUMI_STACK} --yes