Commit 693fa313 authored by Pierre Smeyers's avatar Pierre Smeyers
Browse files

refactor(script): retrieve function params directly from env

parent 1977ee97
Loading
Loading
Loading
Loading
+15 −26
Original line number Diff line number Diff line
@@ -275,10 +275,9 @@ stages:
  
  # Google Cloud Authentication
  function gcp_auth() {
    gcp_key_file="$1"
    oidc_provider="$2"
    oidc_account="$3"

    gcp_key_file=${ENV_KEY_FILE:-$GCP_KEY_FILE}
    oidc_provider=${ENV_OIDC_PROVIDER:-$GCP_OIDC_PROVIDER}
    oidc_account=${ENV_OIDC_ACCOUNT:-$GCP_OIDC_ACCOUNT}
    if [[ "$oidc_provider" ]]
    then
      # Use Workload Identity Federation to authenticate
@@ -300,13 +299,12 @@ stages:
    fi
  }


  # application deployment function
  function deploy() {
    export environment_type=$1
    export environment_name=$2
    export gcp_project_id=$3
    environment_url=$4
  function gcp_deploy() {
    export environment_type=$ENV_TYPE
    export environment_name=${ENV_APP_NAME:-${GCP_BASE_APP_NAME}${ENV_APP_SUFFIX}}
    export gcp_project_id=$ENV_PROJECT
    environment_url=${ENV_URL:-${GCP_ENVIRONMENT_URL:-$ENV_URL_LEGACY}}

    # backwards compatibility
    export env=$environment_type
@@ -353,10 +351,10 @@ stages:
  }

  # environment cleanup function
  function delete() {
    export environment_type=$1
    export environment_name=$2
    export gcp_project_id=$3
  function gcp_delete() {
    export environment_type=$ENV_TYPE
    export environment_name=${ENV_APP_NAME:-${GCP_BASE_APP_NAME}${ENV_APP_SUFFIX}}
    export gcp_project_id=$ENV_PROJECT

    # backwards compatibility
    export env=$environment_type
@@ -379,7 +377,6 @@ stages:
    fi
  }


  # export tool functions (might be used in after_script)
  export -f log_info log_warn log_error assert_defined awkenvsubst

@@ -398,6 +395,7 @@ stages:
  before_script:
    - *gcp-scripts
    - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}"
    - gcp_auth

# Deploy job prototype
# Can be extended to define a concrete environment
@@ -413,13 +411,8 @@ stages:
  stage: deploy 
  variables:
    ENV_APP_SUFFIX: "-$CI_ENVIRONMENT_SLUG"
  before_script:
    - *gcp-scripts
    - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}"
    - gcp_auth "${ENV_KEY_FILE:-$GCP_KEY_FILE}" "${ENV_OIDC_PROVIDER:-$GCP_OIDC_PROVIDER}" "${ENV_OIDC_ACCOUNT:-$GCP_OIDC_ACCOUNT}"

  script:
    - deploy "$ENV_TYPE" "${ENV_APP_NAME:-${GCP_BASE_APP_NAME}${ENV_APP_SUFFIX}}" "$ENV_PROJECT" "${ENV_URL:-${GCP_ENVIRONMENT_URL:-$ENV_URL_LEGACY}}"
    - gcp_deploy
  artifacts:
    name: "$ENV_TYPE env url for $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG"
    paths:
@@ -444,12 +437,8 @@ stages:
  dependencies: []
  variables:
    ENV_APP_SUFFIX: "-$CI_ENVIRONMENT_SLUG"
  before_script:
    - *gcp-scripts
    - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}"
    - gcp_auth "${ENV_KEY_FILE:-$GCP_KEY_FILE}" "${ENV_OIDC_PROVIDER:-$GCP_OIDC_PROVIDER}" "${ENV_OIDC_ACCOUNT:-$GCP_OIDC_ACCOUNT}"
  script:
    - delete "$ENV_TYPE" "${ENV_APP_NAME:-${GCP_BASE_APP_NAME}${ENV_APP_SUFFIX}}" "$ENV_PROJECT"
    - gcp_delete
  environment:
    action: stop