diff options
author | Stan Hu <stanhu@gmail.com> | 2017-04-14 14:54:36 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2017-04-14 15:13:31 -0700 |
commit | 00dd2ba95e9607ce4a1cd1a19aecee9b3e083768 (patch) | |
tree | d119fd13a9602206cba156792330e6b93ca6e540 | |
parent | 1cc2d2ecb6d809fba5c1aa17c5f7b3b55d65414d (diff) | |
download | gitlab-ce-00dd2ba95e9607ce4a1cd1a19aecee9b3e083768.tar.gz |
Turn on caching of classes in Knapsack specs
Enabling caching of classes slows start-up time because all controllers
are loaded at initialization, but it reduces memory and load because files
are not reloaded with every request. For example, caching is not necessary
for loading database migrations but useful for handling Knapsack specs.
Addresses gitlab-org/gitlab-ee#2162
-rw-r--r-- | .gitlab-ci.yml | 2 | ||||
-rw-r--r-- | config/environments/test.rb | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4e6fcab3808..d84725b202a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -67,6 +67,7 @@ stages: - export CI_NODE_TOTAL=${JOB_NAME[2]} - export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json - export KNAPSACK_GENERATE_REPORT=true + - export CACHE_CLASSES=true - cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH} - knapsack rspec "--color --format documentation" artifacts: @@ -87,6 +88,7 @@ stages: - export CI_NODE_TOTAL=${JOB_NAME[2]} - export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json - export KNAPSACK_GENERATE_REPORT=true + - export CACHE_CLASSES=true - cp ${KNAPSACK_SPINACH_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH} - knapsack spinach "-r rerun" || retry '[[ -e tmp/spinach-rerun.txt ]] && bundle exec spinach -r rerun $(cat tmp/spinach-rerun.txt)' artifacts: diff --git a/config/environments/test.rb b/config/environments/test.rb index a25c5016a3b..c3b788c038e 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -8,7 +8,12 @@ Rails.application.configure do # test suite. You never need to work with it otherwise. Remember that # your test database is "scratch space" for the test suite and is wiped # and recreated between test runs. Don't rely on the data there! - config.cache_classes = false + + # Enabling caching of classes slows start-up time because all controllers + # are loaded at initalization, but it reduces memory and load because files + # are not reloaded with every request. For example, caching is not necessary + # for loading database migrations but useful for handling Knapsack specs. + config.cache_classes = ENV['CACHE_CLASSES'] == 'true' # Configure static asset server for tests with Cache-Control for performance config.assets.digest = false |