Skip to content

💡 [REQUEST] - Richer record type for env vars #201

@l50

Description

@l50

Implementation PR

No response

Reference Issues

No response

Summary

Make top level TTP env vars work like args (default values, required values, etc.)

If you don't say key: whatever, then it functions as a "the user must set this to a non-empty value" declaration.

Conditional passing (pass this OR that)

Basic Example

The solution should make these steps irrelevant:

steps:
  - name: ensure-aws-creds-present
    inline: |
      set -e
      if [[ -z "${AWS_DEFAULT_REGION}" ]]; then
        echo "AWS_DEFAULT_REGION must be set."
        exit 1
      fi
      if [[ -n "${AWS_ACCESS_KEY_ID}" && -n "${AWS_SECRET_ACCESS_KEY}" ]]; then
        if [[ -z "${AWS_SESSION_TOKEN}" ]]; then
          echo "AWS_SESSION_TOKEN must be set when using AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY."
          exit 1
        fi
      elif [[ -z "${AWS_PROFILE}" ]]; then
        echo "Either AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN, or AWS_PROFILE must be set."
        exit 1
      fi

  - name: ensure-aws-cli-present
    inline: |
      set -e
      if ! [[ -x "$(command -v aws)" ]]; then
        echo 'Error: AWS CLI is not installed.' >&2
      else
        echo -e "AWS CLI is installed: $(aws --version)"
      fi

Drawbacks

No response

Unresolved questions

No response

Metadata

Metadata

Assignees

Labels

questionClarification and/or additional information required to move forward

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions