#!/bin/bash set -e # Script to generate e2e test child pipeline # This is required because environment variables that are generated dynamically are not picked up by rules in child pipelines source $ENV_FILE echo "Generating child pipeline yml definitions for review-app and package-and-test child pipelines" if [ "$QA_SKIP_ALL_TESTS" == "true" ]; then skip_pipeline=".gitlab/ci/_skip.yml" echo "Using ${skip_pipeline} due to QA_SKIP_ALL_TESTS set to 'true'" cp $skip_pipeline "$OMNIBUS_PIPELINE_YML" cp $skip_pipeline "$REVIEW_PIPELINE_YML" exit fi # set custom cache key to override default cache in pipeline-common because we use bundle to install gitlab-qa gem qa_cache_key="qa-e2e-ruby-${RUBY_VERSION}-$(md5sum qa/Gemfile.lock | awk '{ print $1 }')" variables=$(cat <<YML variables: COLORIZED_LOGS: "true" GIT_DEPTH: "20" GIT_STRATEGY: "clone" # 'GIT_STRATEGY: clone' optimizes the pack-objects cache hit ratio GIT_SUBMODULE_STRATEGY: "none" GITLAB_QA_CACHE_KEY: "$qa_cache_key" GITLAB_VERSION: "$(cat VERSION)" QA_EXPORT_TEST_METRICS: "${QA_EXPORT_TEST_METRICS:-true}" QA_FEATURE_FLAGS: "${QA_FEATURE_FLAGS}" QA_FRAMEWORK_CHANGES: "${QA_FRAMEWORK_CHANGES:-false}" QA_RUN_ALL_TESTS: "${QA_RUN_ALL_TESTS:-false}" QA_SAVE_TEST_METRICS: "${QA_SAVE_TEST_METRICS:-false}" QA_SUITES: "$QA_SUITES" QA_TESTS: "$QA_TESTS" YML ) echo "Using .gitlab/ci/review-apps/main.gitlab-ci.yml and .gitlab/ci/package-and-test/main.gitlab-ci.yml" cp .gitlab/ci/review-apps/main.gitlab-ci.yml "$REVIEW_PIPELINE_YML" echo "$variables" >>"$REVIEW_PIPELINE_YML" cp .gitlab/ci/package-and-test/main.gitlab-ci.yml "$OMNIBUS_PIPELINE_YML" echo "$variables" >>"$OMNIBUS_PIPELINE_YML" echo "Successfully generated review-app and package-and-test pipeline with following variables section:" echo "$variables"