Commit b378b404 authored by Pierre Smeyers's avatar Pierre Smeyers
Browse files

refactor(script): retrieve function params directly from env

parent fa2fbf75
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -841,15 +841,15 @@ stages:
    post_bluegreen
  }

  function deploy() {
    environment_type=$1
  function cf_deploy() {
    environment_type=$ENV_TYPE
    # zero downtime
    zdt=$2
    environment_name=$3
    hostname=$4
    domain=${5:-$(default_domain)}
    routepath=${6}
    pushargs=${7}
    zdt=${ENV_ZERODOWNTIME:-false}
    environment_name=${ENV_APP_NAME:-${CF_BASE_APP_NAME}${ENV_APP_SUFFIX}}
    hostname=${ENV_HOST_NAME:-${CF_BASE_APP_NAME}${ENV_APP_SUFFIX}}
    domain=${ENV_DOMAIN:-${CF_DEFAULT_DOMAIN:-$(default_domain)}}
    routepath=${ENV_ROUTE_PATH:-${CF_DEFAULT_ROUTE_PATH}}
    pushargs="${ENV_PUSH_ARGS:-${CF_DEFAULT_PUSH_ARGS}}"

    # unset any upstream deployment env & artifacts
    rm -f cloudfoundry.env
@@ -895,9 +895,9 @@ stages:
    fi
  }

  function delete() {
    export environment_type=$1
    export environment_name=$2
  function cf_delete() {
    export environment_type=$ENV_TYPE
    export environment_name=${ENV_APP_NAME:-${CF_BASE_APP_NAME}${ENV_APP_SUFFIX}}

    # backward compatibility
    export env=$environment_type
@@ -1214,7 +1214,7 @@ stages:
    # use $CI_ENVIRONMENT_SLUG for environment_name to avoid service name constraints (<=50 chars)
    # use $CI_ENVIRONMENT_SLUG for hostname to avoid constraints (<=63 chars)
    - manage_services "create"
    - deploy "$ENV_TYPE" "${ENV_ZERODOWNTIME:-false}" "${ENV_APP_NAME:-${CF_BASE_APP_NAME}${ENV_APP_SUFFIX}}" "${ENV_HOST_NAME:-${CF_BASE_APP_NAME}${ENV_APP_SUFFIX}}" "${ENV_DOMAIN:-${CF_DEFAULT_DOMAIN}}" "${ENV_ROUTE_PATH:-${CF_DEFAULT_ROUTE_PATH}}" "${ENV_PUSH_ARGS:-${CF_DEFAULT_PUSH_ARGS}}"
    - cf_deploy
  artifacts:
    name: "$ENV_TYPE env url or cf logs for $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG"
    when: always
@@ -1252,7 +1252,7 @@ stages:
    - assert_defined "$ENV_SPACE" 'Missing required Cloud Foundry space'
    - cf login -a ${ENV_URL:-$CF_URL} -u ${ENV_USER:-$CF_USER} -p "${ENV_PASSWORD:-$CF_PASSWORD}" -o ${ENV_ORG:-$CF_ORG} -s $ENV_SPACE
  script:
    - delete "$ENV_TYPE" ${ENV_APP_NAME:-${CF_BASE_APP_NAME}${ENV_APP_SUFFIX}}
    - cf_delete
    - manage_services "delete"
  environment:
    action: stop
+47 −9
Original line number Diff line number Diff line
@@ -17,7 +17,11 @@ function teardown() {

@test "deploy without manifest should fail" {
  # WHEN
  run deploy integration false acme1 my-acme-host domain.mine
  ENV_TYPE=integration
  ENV_APP_NAME=acme1
  ENV_HOST_NAME=my-acme-host
  ENV_DOMAIN=domain.mine
  run cf_deploy
  # printf "%s\n" "${lines[@]}" > /tmp/bats.out
  # THEN
  assert_failure
@@ -28,7 +32,11 @@ function teardown() {
  cp test/fixtures/manifest-wo-route.yml $TTMP/manifest.yml
  cp test/fixtures/cf-readiness-check-ko.sh $TTMP/cf-readiness-check.sh
  # WHEN
  run deploy integration false acme1 my-acme-host domain.mine
  ENV_TYPE=integration
  ENV_APP_NAME=acme1
  ENV_HOST_NAME=my-acme-host
  ENV_DOMAIN=domain.mine
  run cf_deploy
  # THEN
  assert_failure
}
@@ -38,7 +46,11 @@ function teardown() {
  cp test/fixtures/manifest-wo-route.yml $TTMP/manifest.yml
  cp test/fixtures/cf-readiness-check-ok.sh $TTMP/cf-readiness-check.sh
  # WHEN
  run deploy integration false acme1 my-acme-host domain.mine
  ENV_TYPE=integration
  ENV_APP_NAME=acme1
  ENV_HOST_NAME=my-acme-host
  ENV_DOMAIN=domain.mine
  run cf_deploy
  # THEN
  assert_success
  assert [ -f "$CF_SCRIPTS_DIR/generated-vars.yml" ]
@@ -54,7 +66,11 @@ function teardown() {
  cp test/fixtures/cf-readiness-check-ok.sh $TTMP/cf-readiness-check.sh
  cp test/fixtures/cf-pre-push.sh $TTMP/
  # WHEN
  run deploy integration false acme1 my-acme-host domain.mine
  ENV_TYPE=integration
  ENV_APP_NAME=acme1
  ENV_HOST_NAME=my-acme-host
  ENV_DOMAIN=domain.mine
  run cf_deploy
  # THEN
  assert_success
  assert [ -f "$CF_SCRIPTS_DIR/generated-vars.yml" ]
@@ -70,7 +86,11 @@ function teardown() {
  cp test/fixtures/cf-readiness-check-ok.sh $TTMP/cf-readiness-check.sh
  cp test/fixtures/cf-pre-start.sh $TTMP/
  # WHEN
  run deploy integration false acme1 my-acme-host domain.mine
  ENV_TYPE=integration
  ENV_APP_NAME=acme1
  ENV_HOST_NAME=my-acme-host
  ENV_DOMAIN=domain.mine
  run cf_deploy
  # THEN
  assert_success
  assert [ -f "$CF_SCRIPTS_DIR/generated-vars.yml" ]
@@ -86,7 +106,10 @@ function teardown() {
  cp test/fixtures/manifest-wo-route.yml $TTMP/manifest.yml
  cp test/fixtures/cf-readiness-check-ok.sh $TTMP/cf-readiness-check.sh
  # WHEN
  run deploy integration false acme1 my-acme-host
  ENV_TYPE=integration
  ENV_APP_NAME=acme1
  ENV_HOST_NAME=my-acme-host
  run cf_deploy
  # THEN
  assert_success
  assert [ -f "$CF_SCRIPTS_DIR/generated-vars.yml" ]
@@ -100,7 +123,12 @@ function teardown() {
  cp test/fixtures/manifest-wo-route.yml $TTMP/manifest.yml
  cp test/fixtures/cf-readiness-check-ok.sh $TTMP/cf-readiness-check.sh
  # WHEN
  run deploy production true acme1 my-acme-host domain.mine
  ENV_TYPE=production
  ENV_ZERODOWNTIME=true
  ENV_APP_NAME=acme1
  ENV_HOST_NAME=my-acme-host
  ENV_DOMAIN=domain.mine
  run cf_deploy
  # THEN
  assert_success
  assert [ -f "$CF_SCRIPTS_DIR/generated-vars.yml" ]
@@ -120,7 +148,12 @@ function teardown() {
  cp test/fixtures/cf-readiness-check-ok.sh $TTMP/cf-readiness-check.sh
  export RUBY_RESULT=("((hostname)).acme.com ((hostname)).secondary.intra" "$(awk  '/routes:/{no_print=1}{if(!no_print){print $0}' < test/fixtures/manifest-w-routes.yml)")
  # WHEN
  run deploy production false acme1 my-acme-host domain.mine
  ENV_TYPE=production
  ENV_ZERODOWNTIME=false
  ENV_APP_NAME=acme1
  ENV_HOST_NAME=my-acme-host
  ENV_DOMAIN=domain.mine
  run cf_deploy
  # THEN
  assert_success
  assert [ -f "$CF_SCRIPTS_DIR/generated-vars.yml" ]
@@ -136,7 +169,12 @@ function teardown() {
  cp test/fixtures/cf-readiness-check-ok.sh $TTMP/cf-readiness-check.sh
  export RUBY_RESULT=("((hostname)).acme.com ((hostname)).secondary.intra" "$(awk  '/routes:/{no_print=1}{if(!no_print){print $0}' < test/fixtures/manifest-w-routes.yml)")
  # WHEN
  run deploy production true acme1 my-acme-host domain.mine
  ENV_TYPE=production
  ENV_ZERODOWNTIME=true
  ENV_APP_NAME=acme1
  ENV_HOST_NAME=my-acme-host
  ENV_DOMAIN=domain.mine
  run cf_deploy
  # THEN
  assert_success
  assert [ -f "$CF_SCRIPTS_DIR/generated-vars.yml" ]