github.com/Venafi/vcert/v5@v5.10.2/aruba/cucumber.sh (about)

     1  #!/bin/bash
     2  set -ex
     3  echo "Using token $TPP_ACCESS_TOKEN"
     4  
     5  RUN_COMMAND="docker run -t --rm \
     6            -e TPP_URL \
     7            -e TPP_USER \
     8            -e TPP_TRUST_BUNDLE \
     9            -e TPP_PASSWORD \
    10            -e TPP_ACCESS_TOKEN \
    11            -e TPP_ZONE \
    12            -e TPP_ZONE_ECDSA \
    13            -e CLOUD_URL \
    14            -e CLOUD_APIKEY \
    15            -e CLOUD_ZONE \
    16            -e VAAS_ZONE_EC \
    17            -e TPP_IP \
    18            -e TPP_CN \
    19            -e OKTA_CLIENT_ID \
    20            -e OKTA_CLIENT_ID_PASS \
    21            -e OKTA_AUTH_SERVER \
    22            -e OKTA_CLIENT_SECRET \
    23            -e IDP_ACCESS_TOKEN \
    24            -e OKTA_CREDS_USR \
    25            -e OKTA_CREDS_PSW \
    26            -e OKTA_SCOPE \
    27            -e FIREFLY_ZONE \
    28            -e FIREFLY_URL \
    29            -e FIREFLY_CA_BUNDLE \
    30            -e GCP_AUTH_PATH \
    31            -e GCP_PROJECT \
    32            -e GCP_REGION \
    33            -e GCP_PROVIDER_NAME \
    34            -e GCP_KEYSTORE_NAME \
    35            -e GCP_KEYSTORE_ID \
    36            -e AWS_ACCESS_KEY_ID \
    37            -e AWS_REGION \
    38            -e AWS_SECRET_ACCESS_KEY \
    39            -e AWS_PROVIDER_NAME \
    40            -e AWS_KEYSTORE_NAME \
    41            -e AWS_KEYSTORE_ID \
    42            -e AZURE_CLIENT_ID \
    43            -e AZURE_CLIENT_SECRET \
    44            -e AZURE_TENANT_ID \
    45            -e AZURE_KEYVAULT_NAME \
    46            -e AZURE_PROVIDER_NAME \
    47            -e AZURE_KEYSTORE_NAME \
    48            -e AZURE_KEYSTORE_ID"
    49  
    50  # Use getopts to handle command-line options
    51  while getopts "a:b:" opt; do
    52    case "$opt" in
    53      a) FEATURE="$OPTARG";;
    54      b) PLATFORM="$OPTARG";;
    55      \?) echo "Invalid option -$OPTARG" >&2
    56          exit 1;;
    57    esac
    58  done
    59  
    60  if [ "$PLATFORM" != "" ] ; then
    61    export TAGS="--tags @$PLATFORM"
    62    RUN_COMMAND="${RUN_COMMAND} \
    63    -e TAGS"
    64  fi
    65  
    66  RUN_COMMAND="${RUN_COMMAND} \
    67  -e FILE_PATH vcert.auto"
    68  
    69  # which has been replaced with command -v. This is because which is not as portable as command -v
    70  # when it comes to locating executables, especially in non-interactive shells.
    71  PARALLEL_PATH=""
    72  if [ "$(command -v parallel)" ]; then
    73  PARALLEL_PATH=$(command -v parallel)
    74  fi
    75  
    76  if [ "$FEATURE" != "" ]; then
    77      echo One-feature run
    78      export FILE_PATH=$FEATURE
    79      $RUN_COMMAND "$FEATURE"
    80  # if "GNU parallel" is installed and Parallel is enabled (you must export the PARALLEL_SET env variable,
    81  # so it can reach at the shell execution)
    82  # This will create a heavy load of certificates in parallel. TPP is not able to handle those yet.
    83  elif [ "$PARALLEL_PATH" != "" ] && [ "$PARALLEL_SET" == "true" ]; then
    84      echo Parallel...
    85      # here we are are invoking parallel
    86      which parallel
    87      FEATURES=""
    88      for F in `find features/ -type f -name '*.feature'`; do
    89          FEATURES="$FEATURES $F"
    90      done
    91      parallel -j 20 "$RUN_COMMAND" ::: "$FEATURES"
    92  else
    93      echo Sequential...
    94      hostname;
    95      $RUN_COMMAND
    96  fi