diff options
Diffstat (limited to 'qa/qa/specs/features/browser_ui/4_verify/pipeline')
12 files changed, 147 insertions, 197 deletions
diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb index 8cf923f543b..0a66403f728 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb @@ -29,15 +29,14 @@ module QA private def add_files_to_project - Resource::Repository::Commit.fabricate_via_api! do |commit| - commit.project = project - commit.commit_message = 'Add CI and local files' - commit.add_files([build_config_file, test_config_file, non_detectable_file, main_ci_file]) - end + create(:commit, project: project, commit_message: 'Add CI and local files', actions: [ + build_config_file, test_config_file, non_detectable_file, main_ci_file + ]) end def main_ci_file { + action: 'create', file_path: '.gitlab-ci.yml', content: <<~YAML include: 'configs/*.yml' @@ -47,6 +46,7 @@ module QA def build_config_file { + action: 'create', file_path: 'configs/builds.yml', content: <<~YAML build: @@ -58,6 +58,7 @@ module QA def test_config_file { + action: 'create', file_path: 'configs/tests.yml', content: <<~YAML test: @@ -69,6 +70,7 @@ module QA def non_detectable_file { + action: 'create', file_path: 'configs/not_included.yaml', # we only include `*.yml` not `*.yaml` content: <<~YAML deploy: diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb index fe655f41992..adf397907da 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb @@ -23,7 +23,7 @@ module QA add_included_files add_main_ci_file project.visit! - Flow::Pipeline.visit_latest_pipeline(status: 'passed') + Flow::Pipeline.visit_latest_pipeline(status: 'Passed') end after do diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_multiple_projects_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_multiple_projects_spec.rb index da7b7ec720f..4104db2fa7c 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_multiple_projects_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_multiple_projects_spec.rb @@ -7,13 +7,7 @@ module QA let(:main_project) { create(:project, name: 'project-with-pipeline') } let(:project1) { create(:project, name: 'external-project-1') } let(:project2) { create(:project, name: 'external-project-2') } - let!(:runner) do - Resource::ProjectRunner.fabricate! do |runner| - runner.project = main_project - runner.name = executor - runner.tags = [executor] - end - end + let!(:runner) { create(:project_runner, project: main_project, name: executor, tags: [executor]) } before do Flow::Login.sign_in @@ -24,7 +18,7 @@ module QA add_main_ci_file(main_project) main_project.visit! - Flow::Pipeline.visit_latest_pipeline(status: 'passed') + Flow::Pipeline.visit_latest_pipeline(status: 'Passed') end after do @@ -32,7 +26,7 @@ module QA end it( - 'runs the pipeline with composed config', + 'runs the pipeline with composed config', :reliable, testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/396374' ) do Page::Project::Pipeline::Show.perform do |pipeline| @@ -51,6 +45,7 @@ module QA def add_included_files_for(project) files = [ { + action: 'create', file_path: 'file1.yml', content: <<~YAML test1_for_#{project.full_path}: @@ -59,6 +54,7 @@ module QA YAML }, { + action: 'create', file_path: 'file2.yml', content: <<~YAML test2_for_#{project.full_path}: @@ -68,23 +64,16 @@ module QA } ] - Resource::Repository::Commit.fabricate_via_api! do |commit| - commit.project = project - commit.commit_message = 'Add files' - commit.add_files(files) - end + create(:commit, project: project, commit_message: 'Add files', actions: files) end def add_main_ci_file(project) - Resource::Repository::Commit.fabricate_via_api! do |commit| - commit.project = project - commit.commit_message = 'Add config file' - commit.add_files([main_ci_file]) - end + create(:commit, project: project, commit_message: 'Add config file', actions: [main_ci_file]) end def main_ci_file { + action: 'create', file_path: '.gitlab-ci.yml', content: <<~YAML include: diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb index 3e1e2bc5b5b..944f40b61f6 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb @@ -18,43 +18,39 @@ module QA end let!(:ci_file) do - Resource::Repository::Commit.fabricate_via_api! do |commit| - commit.project = project - commit.commit_message = 'Add .gitlab-ci.yml' - commit.add_files( - [ - file_path: '.gitlab-ci.yml', - content: <<~YAML - test_blocked_pipeline: - stage: build - tags: [#{executor}] - script: echo 'OK!' + create(:commit, project: project, commit_message: 'Add .gitlab-ci.yml', actions: [ + { + action: 'create', + file_path: '.gitlab-ci.yml', + content: <<~YAML + test_blocked_pipeline: + stage: build + tags: [#{executor}] + script: echo 'OK!' - manual_job: - stage: test - needs: [test_blocked_pipeline] - script: echo do not click me - when: manual - allow_failure: false + manual_job: + stage: test + needs: [test_blocked_pipeline] + script: echo do not click me + when: manual + allow_failure: false - dummy_job: - stage: deploy - needs: [manual_job] - script: echo nothing - YAML - ] - ) - end + dummy_job: + stage: deploy + needs: [manual_job] + script: echo nothing + YAML + } + ]) end let(:merge_request) do - Resource::MergeRequest.fabricate_via_api! do |merge_request| - merge_request.project = project - merge_request.description = Faker::Lorem.sentence - merge_request.target_new_branch = false - merge_request.file_name = 'custom_file.txt' - merge_request.file_content = Faker::Lorem.sentence - end + create(:merge_request, + project: project, + description: Faker::Lorem.sentence, + target_new_branch: false, + file_name: 'custom_file.txt', + file_content: Faker::Lorem.sentence) end before do diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb index e599f1929d5..7735181f748 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb @@ -44,6 +44,7 @@ module QA def success_child_ci_file { + action: 'create', file_path: '.child-ci.yml', content: <<~YAML child_job: @@ -57,6 +58,7 @@ module QA def fail_child_ci_file { + action: 'create', file_path: '.child-ci.yml', content: <<~YAML child_job: @@ -70,6 +72,7 @@ module QA def parent_ci_file { + action: 'create', file_path: '.gitlab-ci.yml', content: <<~YAML stages: @@ -91,16 +94,10 @@ module QA end def add_ci_files(child_ci_file) - Resource::Repository::Commit.fabricate_via_api! do |commit| - commit.project = project - commit.commit_message = 'Add parent and child pipelines CI files.' - commit.add_files( - [ - child_ci_file, - parent_ci_file - ] - ) - end.project.visit! + create(:commit, + project: project, + commit_message: 'Add parent and child pipelines CI files.', + actions: [child_ci_file, parent_ci_file]).project.visit! end end end diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/pass_dotenv_variables_to_downstream_via_bridge_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/pass_dotenv_variables_to_downstream_via_bridge_spec.rb index f9a3856f810..1768cb9a488 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/pass_dotenv_variables_to_downstream_via_bridge_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/pass_dotenv_variables_to_downstream_via_bridge_spec.rb @@ -22,7 +22,7 @@ module QA add_ci_file(downstream_project, downstream_ci_file) add_ci_file(upstream_project, upstream_ci_file) upstream_project.visit! - Flow::Pipeline.visit_latest_pipeline(status: 'passed') + Flow::Pipeline.visit_latest_pipeline(status: 'Passed') end after do @@ -30,7 +30,8 @@ module QA [upstream_project, downstream_project].each(&:remove_via_api!) end - it 'runs the pipeline with composed config', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/348088' do + it 'runs the pipeline with composed config', :reliable, + testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/348088' do Page::Project::Pipeline::Show.perform do |parent_pipeline| Support::Waiter.wait_until { parent_pipeline.has_linked_pipeline? } parent_pipeline.expand_linked_pipeline @@ -46,15 +47,12 @@ module QA private def add_ci_file(project, file) - Resource::Repository::Commit.fabricate_via_api! do |commit| - commit.project = project - commit.commit_message = 'Add config file' - commit.add_files([file]) - end + create(:commit, project: project, commit_message: 'Add config file', actions: [file]) end def upstream_ci_file { + action: 'create', file_path: '.gitlab-ci.yml', content: <<~YAML build: @@ -77,6 +75,7 @@ module QA def downstream_ci_file { + action: 'create', file_path: '.gitlab-ci.yml', content: <<~YAML downstream_test: diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb index 69d8467e6ea..126c0bd5d9c 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb @@ -60,7 +60,7 @@ module QA end with_them do - it 'applies pull policy in job correctly', testcase: params[:testcase] do + it 'applies pull policy in job correctly', :reliable, testcase: params[:testcase] do visit_job if pull_image @@ -106,7 +106,7 @@ module QA QA::Service::Shellout.shell("docker cp #{runner_name}:/etc/gitlab-runner/config.toml #{tempdir.path}") File.open(tempdir.path, 'a') do |f| - f << %[ allowed_pull_policies = #{allowed_policies}\n] + f << %( allowed_pull_policies = #{allowed_policies}\n) end QA::Service::Shellout.shell("docker cp #{tempdir.path} #{runner_name}:/etc/gitlab-runner/config.toml") @@ -117,28 +117,23 @@ module QA end def add_ci_file - Resource::Repository::Commit.fabricate_via_api! do |commit| - commit.project = project - commit.commit_message = 'Add .gitlab-ci.yml' - commit.add_files( - [ - { - file_path: '.gitlab-ci.yml', - content: <<~YAML - default: - image: ruby:2.6 - tags: [#{runner_name}] - - #{job_name}: - script: echo "Using pull policies #{pull_policies}" - image: - name: ruby:2.6 - pull_policy: #{pull_policies} - YAML - } - ] - ) - end + create(:commit, project: project, commit_message: 'Add .gitlab-ci.yml', actions: [ + { + action: 'create', + file_path: '.gitlab-ci.yml', + content: <<~YAML + default: + image: ruby:2.6 + tags: [#{runner_name}] + + #{job_name}: + script: echo "Using pull policies #{pull_policies}" + image: + name: ruby:2.6 + pull_policy: #{pull_policies} + YAML + } + ]) end def visit_job diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_via_web_only_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_via_web_only_spec.rb index b96869658c9..da42c28cd48 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_via_web_only_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_via_web_only_spec.rb @@ -7,26 +7,20 @@ module QA let(:job_name) { 'test_job' } let(:project) { create(:project, name: 'web-only-pipeline') } let!(:ci_file) do - Resource::Repository::Commit.fabricate_via_api! do |commit| - commit.project = project - commit.commit_message = 'Add .gitlab-ci.yml' - commit.add_files( - [ - { - file_path: '.gitlab-ci.yml', - content: <<~YAML - #{job_name}: - tags: - - #{project.name} - script: echo 'OK' - only: - - web - - YAML - } - ] - ) - end + create(:commit, project: project, commit_message: 'Add .gitlab-ci.yml', actions: [ + { + action: 'create', + file_path: '.gitlab-ci.yml', + content: <<~YAML + #{job_name}: + tags: + - #{project.name} + script: echo 'OK' + only: + - web + YAML + } + ]) end before do diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_with_manual_jobs_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_with_manual_jobs_spec.rb index c5929dd1f49..b5ebcb9e48a 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_with_manual_jobs_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_with_manual_jobs_spec.rb @@ -18,48 +18,43 @@ module QA end let!(:ci_file) do - Resource::Repository::Commit.fabricate_via_api! do |commit| - commit.project = project - commit.commit_message = 'Add .gitlab-ci.yml' - commit.add_files( - [ - { - file_path: '.gitlab-ci.yml', - content: <<~YAML - default: - tags: ["#{executor}"] - - stages: - - Stage1 - - Stage2 - - Stage3 - - Prep: - stage: Stage1 - script: exit 0 - when: manual - - Build: - stage: Stage2 - needs: ['Prep'] - script: exit 0 - parallel: 6 - - Test: - stage: Stage3 - needs: ['Build'] - script: exit 0 - - Deploy: - stage: Stage3 - needs: ['Test'] - script: exit 0 - parallel: 6 - YAML - } - ] - ) - end + create(:commit, project: project, commit_message: 'Add .gitlab-ci.yml', actions: [ + { + action: 'create', + file_path: '.gitlab-ci.yml', + content: <<~YAML + default: + tags: ["#{executor}"] + + stages: + - Stage1 + - Stage2 + - Stage3 + + Prep: + stage: Stage1 + script: exit 0 + when: manual + + Build: + stage: Stage2 + needs: ['Prep'] + script: exit 0 + parallel: 6 + + Test: + stage: Stage3 + needs: ['Build'] + script: exit 0 + + Deploy: + stage: Stage3 + needs: ['Test'] + script: exit 0 + parallel: 6 + YAML + } + ]) end before do @@ -67,7 +62,7 @@ module QA Flow::Login.sign_in project.visit! - Flow::Pipeline.visit_latest_pipeline(status: 'skipped') + Flow::Pipeline.visit_latest_pipeline(status: 'Skipped') end after do diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/trigger_child_pipeline_with_manual_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/trigger_child_pipeline_with_manual_spec.rb index 09d1fd331cd..a9413f036bb 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/trigger_child_pipeline_with_manual_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/trigger_child_pipeline_with_manual_spec.rb @@ -17,7 +17,7 @@ module QA Flow::Login.sign_in add_ci_files project.visit! - Flow::Pipeline.visit_latest_pipeline(status: 'passed') + Flow::Pipeline.visit_latest_pipeline(status: 'Passed') end after do @@ -39,20 +39,14 @@ module QA private def add_ci_files - Resource::Repository::Commit.fabricate_via_api! do |commit| - commit.project = project - commit.commit_message = 'Add parent and child pipelines CI files.' - commit.add_files( - [ - child_ci_file, - parent_ci_file - ] - ) - end + create(:commit, project: project, commit_message: 'Add parent and child pipelines CI files.', actions: [ + child_ci_file, parent_ci_file + ]) end def parent_ci_file { + action: 'create', file_path: '.gitlab-ci.yml', content: <<~YAML build: @@ -76,6 +70,7 @@ module QA def child_ci_file { + action: 'create', file_path: '.child-pipeline.yml', content: <<~YAML child_build: diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/trigger_matrix_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/trigger_matrix_spec.rb index 6eea6756ee7..9aa4c7a0c34 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/trigger_matrix_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/trigger_matrix_spec.rb @@ -17,7 +17,7 @@ module QA Flow::Login.sign_in add_ci_files project.visit! - Flow::Pipeline.visit_latest_pipeline(status: 'passed') + Flow::Pipeline.visit_latest_pipeline(status: 'Passed') end after do @@ -53,20 +53,12 @@ module QA private def add_ci_files - Resource::Repository::Commit.fabricate_via_api! do |commit| - commit.project = project - commit.commit_message = 'Add parent and child pipelines CI files.' - commit.add_files( - [ - child_ci_file, - parent_ci_file - ] - ) - end + create(:commit, project: project, commit_message: 'todo', actions: [child_ci_file, parent_ci_file]) end def parent_ci_file { + action: 'create', file_path: '.gitlab-ci.yml', content: <<~YAML test: @@ -89,6 +81,7 @@ module QA def child_ci_file { + action: 'create', file_path: 'child.yml', content: <<~YAML test_vars: diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/update_ci_file_with_pipeline_editor_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/update_ci_file_with_pipeline_editor_spec.rb index efd60b79ade..7c8567c7729 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/update_ci_file_with_pipeline_editor_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/update_ci_file_with_pipeline_editor_spec.rb @@ -7,20 +7,15 @@ module QA let(:project) { create(:project, name: 'pipeline-editor-project') } let!(:commit) do - Resource::Repository::Commit.fabricate_via_api! do |commit| - commit.project = project - commit.commit_message = 'Add .gitlab-ci.yml' - commit.add_files( - [ - { - file_path: '.gitlab-ci.yml', - content: <<~YAML - 'This is to make pipeline fail immediately to save test execution time and resources.' - YAML - } - ] - ) - end + create(:commit, project: project, commit_message: 'Add .gitlab-ci.yml', actions: [ + { + action: 'create', + file_path: '.gitlab-ci.yml', + content: <<~YAML + 'This is to make pipeline fail immediately to save test execution time and resources.' + YAML + } + ]) end let(:new_content) do |