Loading templates/gitlab-ci-cf.yml +13 −13 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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 Loading test/tests.bats +47 −9 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 } Loading @@ -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" ] Loading @@ -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" ] Loading @@ -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" ] Loading @@ -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" ] Loading @@ -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" ] Loading @@ -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" ] Loading @@ -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" ] Loading Loading
templates/gitlab-ci-cf.yml +13 −13 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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 Loading
test/tests.bats +47 −9 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 } Loading @@ -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" ] Loading @@ -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" ] Loading @@ -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" ] Loading @@ -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" ] Loading @@ -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" ] Loading @@ -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" ] Loading @@ -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" ] Loading