Commit 9531f46b authored by GitLab Bot's avatar GitLab Bot

Automatic merge of gitlab-org/gitlab-ce master

parents b2fbc919 beb7d892
...@@ -370,8 +370,11 @@ variables take precedence over those defined in `.gitlab-ci.yml`. ...@@ -370,8 +370,11 @@ variables take precedence over those defined in `.gitlab-ci.yml`.
## Unsupported variables ## Unsupported variables
There are cases where some variables cannot be used in the context of a There are cases where some variables cannot be used in the context of a
`.gitlab-ci.yml` definition (for example under `script`). Read more `.gitlab-ci.yml` definition (for example under `script`). Read more about which variables are [not supported](where_variables_can_be_used.md).
about which variables are [not supported](where_variables_can_be_used.md).
## Where variables can be used
Click [here](where_variables_can_be_used.md) for a section that describes where and how the different types of variables can be used.
## Advanced use ## Advanced use
......
# frozen_string_literal: true # frozen_string_literal: true
module QA module QA
# Failure issue: https://gitlab.com/gitlab-org/quality/nightly/issues/113 context 'Create', :requires_admin do
context 'Create', :requires_admin, :quarantine do
describe 'push after setting the file size limit via admin/application_settings' do describe 'push after setting the file size limit via admin/application_settings' do
before(:context) do before(:context) do
@project = Resource::Project.fabricate_via_api! do |p| @project = Resource::Project.fabricate_via_api! do |p|
...@@ -21,14 +20,21 @@ module QA ...@@ -21,14 +20,21 @@ module QA
it 'push successful when the file size is under the limit' do it 'push successful when the file size is under the limit' do
set_file_size_limit(5) set_file_size_limit(5)
push = push_new_file('oversize_file_1.bin', wait_for_push: true)
expect(push.output).not_to have_content 'remote: fatal: pack exceeds maximum allowed size' retry_on_fail do
push = push_new_file('oversize_file_1.bin', wait_for_push: true)
expect(push.output).not_to have_content 'remote: fatal: pack exceeds maximum allowed size'
end
end end
it 'push fails when the file size is above the limit' do it 'push fails when the file size is above the limit' do
set_file_size_limit(1) set_file_size_limit(1)
expect { push_new_file('oversize_file_2.bin', wait_for_push: false) }
.to raise_error(QA::Git::Repository::RepositoryCommandError, /remote: fatal: pack exceeds maximum allowed size/) retry_on_fail do
expect { push_new_file('oversize_file_2.bin', wait_for_push: false) }
.to raise_error(QA::Git::Repository::RepositoryCommandError, /remote: fatal: pack exceeds maximum allowed size/)
end
end end
def set_file_size_limit(limit) def set_file_size_limit(limit)
...@@ -54,6 +60,22 @@ module QA ...@@ -54,6 +60,22 @@ module QA
output output
end end
# Application settings are cached for up to a minute. So when we change
# the `receive_max_input_size` setting, the setting might not be applied
# for minute. This caused the tests to intermittently fail.
# See https://gitlab.com/gitlab-org/quality/nightly/issues/113
#
# Instead of waiting a minute after changing the setting, we retry the
# attempt to push if it fails. Most of the time the setting is updated in
# under a minute, i.e., in fewer than 6 attempts with a 10 second sleep
# between attempts.
# See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/30233#note_188616863
def retry_on_fail
Support::Retrier.retry_on_exception(max_attempts: 6, reload_page: nil, sleep_interval: 10) do
yield
end
end
end end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment