From edd6fda56d54d7223eb67a15341603e44c3a5f7a Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 18 Nov 2021 03:14:17 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/ci/review.gitlab-ci.yml | 2 +- .gitlab/ci/rules.gitlab-ci.yml | 147 +++--------------- .../set_status_modal_wrapper.vue | 11 +- .../security/validators/schema_validator.rb | 2 +- .../{sast.json => sast-report-format.json} | 0 ...on => secret-detection-report-format.json} | 0 .../Browser-Performance-Testing.gitlab-ci.yml | 2 +- ...r-Performance-Testing.latest.gitlab-ci.yml | 2 +- .../templates/Jobs/CF-Provision.gitlab-ci.yml | 2 +- .../DAST-Default-Branch-Deploy.gitlab-ci.yml | 4 +- .../ci/templates/Jobs/Deploy.gitlab-ci.yml | 16 +- .../Jobs/Deploy.latest.gitlab-ci.yml | 16 +- .../templates/Jobs/Deploy/EC2.gitlab-ci.yml | 4 +- .../templates/Jobs/Deploy/ECS.gitlab-ci.yml | 12 +- .../ci/templates/Jobs/Helm-2to3.gitlab-ci.yml | 12 +- .../Load-Performance-Testing.gitlab-ci.yml | 2 +- .../ci/templates/Security/DAST.gitlab-ci.yml | 2 +- .../Security/DAST.latest.gitlab-ci.yml | 2 +- qa/qa/resource/project_milestone.rb | 4 + .../set_status_modal_wrapper_spec.js | 14 +- .../Jobs/deploy_gitlab_ci_yaml_spec.rb | 30 +++- .../auto_devops_gitlab_ci_yaml_spec.rb | 20 ++- 22 files changed, 115 insertions(+), 191 deletions(-) rename lib/gitlab/ci/parsers/security/validators/schemas/{sast.json => sast-report-format.json} (100%) rename lib/gitlab/ci/parsers/security/validators/schemas/{secret_detection.json => secret-detection-report-format.json} (100%) diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml index b2b8c456ae2..232018c2cd0 100644 --- a/.gitlab/ci/review.gitlab-ci.yml +++ b/.gitlab/ci/review.gitlab-ci.yml @@ -18,7 +18,7 @@ review-cleanup: start-review-app-pipeline: extends: - - .review:rules:review-app-pipeline + - .review:rules:start-review-app-pipeline stage: review needs: - job: build-assets-image diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index cf53e810d01..65397bd76fe 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -76,9 +76,6 @@ .if-dot-com-gitlab-org-schedule: &if-dot-com-gitlab-org-schedule if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_PIPELINE_SOURCE == "schedule"' -.if-dot-com-gitlab-org-schedule-child-pipeline: &if-dot-com-gitlab-org-schedule-child-pipeline - if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_PIPELINE_SOURCE == "parent_pipeline" && $FREQUENCY' - .if-dot-com-ee-schedule: &if-dot-com-ee-schedule if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "schedule"' @@ -1537,7 +1534,7 @@ ################ # Review rules # ################ -.review:rules:review-app-pipeline: +.review:rules:start-review-app-pipeline: rules: - <<: *if-not-ee when: never @@ -1556,79 +1553,29 @@ .review:rules:review-build-cng: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - - <<: *if-dot-com-gitlab-org-merge-request - changes: *ci-review-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *frontend-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-patterns - allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *qa-patterns - - <<: *if-dot-com-gitlab-org-schedule-child-pipeline + - when: always .review:rules:review-deploy: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - - <<: *if-dot-com-gitlab-org-merge-request - changes: *ci-review-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *frontend-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-patterns - allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *qa-patterns - - <<: *if-dot-com-gitlab-org-schedule-child-pipeline - allow_failure: true + - when: on_success .review:rules:review-performance: rules: - if: '$DAST_RUN == "true"' # Skip this job when DAST is run when: never - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - - <<: *if-dot-com-gitlab-org-merge-request + - <<: *if-merge-request-labels-run-review-app # we explicitely don't allow the job to fail in that case + - <<: *if-dot-com-gitlab-org-merge-request # we explicitely don't allow the job to fail in that case changes: *ci-review-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *frontend-patterns - allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-qa-patterns - allow_failure: true - - <<: *if-dot-com-gitlab-org-schedule-child-pipeline + - when: on_success allow_failure: true .review:rules:review-delete-deployment: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-qa-patterns + - when: on_success .review:rules:review-qa-smoke: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - - <<: *if-dot-com-gitlab-org-merge-request - changes: *ci-review-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *frontend-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *qa-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-patterns - allow_failure: true - - <<: *if-dot-com-ee-schedule-child-pipeline - allow_failure: true + - when: on_success # The rule needs to be duplicated between `on_success` and `on_failure` # because the jobs `needs` the previous job to complete. @@ -1637,34 +1584,8 @@ # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63844#note_599012559 .review:rules:review-qa-smoke-report: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - when: on_success - - <<: *if-merge-request-labels-run-review-app - when: on_failure - - <<: *if-dot-com-gitlab-org-merge-request - changes: *ci-review-patterns - when: on_success - - <<: *if-dot-com-gitlab-org-merge-request - changes: *ci-review-patterns - when: on_failure - - <<: *if-dot-com-gitlab-org-merge-request - changes: *frontend-patterns - when: on_success - - <<: *if-dot-com-gitlab-org-merge-request - changes: *frontend-patterns - when: on_failure - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-qa-patterns - when: on_success - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-qa-patterns - when: on_failure - - <<: *if-dot-com-ee-schedule-child-pipeline - when: on_success - - <<: *if-dot-com-ee-schedule-child-pipeline - when: on_failure + - when: on_success + - when: on_failure .review:rules:review-qa-reliable: rules: @@ -1673,17 +1594,12 @@ .review:rules:review-qa-all: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app + - <<: *if-merge-request-labels-run-review-app # we explicitely don't allow the job to fail in that case - <<: *if-dot-com-gitlab-org-merge-request changes: *code-patterns when: manual - allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *qa-patterns - allow_failure: true - - <<: *if-dot-com-ee-nightly-schedule-child-pipeline + allow_failure: true # manual jobs needs to be allowd to fail, otherwise they block the pipeline + - when: on_success allow_failure: true # The rule needs to be duplicated between `on_success` and `on_failure` @@ -1693,29 +1609,9 @@ # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63844#note_599012559 .review:rules:review-qa-all-report: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - when: on_success - - <<: *if-merge-request-labels-run-review-app - when: on_failure - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-patterns - when: manual + - when: on_success allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *qa-patterns - when: on_success - allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *qa-patterns - when: on_failure - allow_failure: true - - <<: *if-dot-com-ee-nightly-schedule-child-pipeline - when: on_success - allow_failure: true - - <<: *if-dot-com-ee-nightly-schedule-child-pipeline - when: on_failure + - when: on_failure allow_failure: true .review:rules:review-cleanup: @@ -1731,23 +1627,16 @@ .review:rules:review-stop: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - when: manual - allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-qa-patterns - when: manual + - when: manual allow_failure: true .review:rules:danger: rules: - - if: '$CI_MERGE_REQUEST_IID' + - <<: *if-merge-request .review:rules:danger-local: rules: - - if: '$CI_MERGE_REQUEST_IID' + - <<: *if-merge-request changes: *danger-patterns ############### diff --git a/app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue b/app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue index 0021fe909e5..e41f3aa5c9d 100644 --- a/app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue +++ b/app/assets/javascripts/set_status_modal/set_status_modal_wrapper.vue @@ -236,6 +236,8 @@ export default { }, statusTimeRanges, safeHtmlConfig: { ADD_TAGS: ['gl-emoji'] }, + actionPrimary: { text: s__('SetStatusModal|Set status') }, + actionSecondary: { text: s__('SetStatusModal|Remove status') }, }; @@ -243,14 +245,13 @@ export default {
{ }); it('clicking "removeStatus" clears the emoji and message fields', async () => { - findModal().vm.$emit('cancel'); + findModal().vm.$emit('secondary'); await wrapper.vm.$nextTick(); expect(findFormField('message').element.value).toBe(''); @@ -206,7 +206,7 @@ describe('SetStatusModalWrapper', () => { }); it('clicking "setStatus" submits the user status', async () => { - findModal().vm.$emit('ok'); + findModal().vm.$emit('primary'); await wrapper.vm.$nextTick(); // set the availability status @@ -215,7 +215,7 @@ describe('SetStatusModalWrapper', () => { // set the currentClearStatusAfter to 30 minutes wrapper.find('[data-testid="thirtyMinutes"]').vm.$emit('click'); - findModal().vm.$emit('ok'); + findModal().vm.$emit('primary'); await wrapper.vm.$nextTick(); const commonParams = { @@ -237,7 +237,7 @@ describe('SetStatusModalWrapper', () => { }); it('calls the "onUpdateSuccess" handler', async () => { - findModal().vm.$emit('ok'); + findModal().vm.$emit('primary'); await wrapper.vm.$nextTick(); expect(wrapper.vm.onUpdateSuccess).toHaveBeenCalled(); @@ -253,7 +253,7 @@ describe('SetStatusModalWrapper', () => { }); it('displays a toast success message', async () => { - findModal().vm.$emit('ok'); + findModal().vm.$emit('primary'); await wrapper.vm.$nextTick(); expect($toast.show).toHaveBeenCalledWith('Status updated'); @@ -270,7 +270,7 @@ describe('SetStatusModalWrapper', () => { }); it('calls the "onUpdateFail" handler', async () => { - findModal().vm.$emit('ok'); + findModal().vm.$emit('primary'); await wrapper.vm.$nextTick(); expect(wrapper.vm.onUpdateFail).toHaveBeenCalled(); @@ -286,7 +286,7 @@ describe('SetStatusModalWrapper', () => { }); it('flashes an error message', async () => { - findModal().vm.$emit('ok'); + findModal().vm.$emit('primary'); await wrapper.vm.$nextTick(); expect(createFlash).toHaveBeenCalledWith({ diff --git a/spec/lib/gitlab/ci/templates/Jobs/deploy_gitlab_ci_yaml_spec.rb b/spec/lib/gitlab/ci/templates/Jobs/deploy_gitlab_ci_yaml_spec.rb index d377cf0c735..789f694b4b4 100644 --- a/spec/lib/gitlab/ci/templates/Jobs/deploy_gitlab_ci_yaml_spec.rb +++ b/spec/lib/gitlab/ci/templates/Jobs/deploy_gitlab_ci_yaml_spec.rb @@ -27,9 +27,9 @@ RSpec.describe 'Jobs/Deploy.gitlab-ci.yml' do end describe 'the created pipeline' do - let(:project) { create(:project, :repository) } - let(:user) { project.owner } + let_it_be(:project, refind: true) { create(:project, :repository) } + let(:user) { project.owner } let(:default_branch) { 'master' } let(:pipeline_ref) { default_branch } let(:service) { Ci::CreatePipelineService.new(project, user, ref: pipeline_ref) } @@ -43,23 +43,23 @@ RSpec.describe 'Jobs/Deploy.gitlab-ci.yml' do allow(project).to receive(:default_branch).and_return(default_branch) end - context 'with no cluster' do + context 'with no cluster or agent' do it 'does not create any kubernetes deployment jobs' do expect(build_names).to eq %w(placeholder) end end context 'with only a disabled cluster' do - let!(:cluster) { create(:cluster, :project, :provided_by_gcp, enabled: false, projects: [project]) } + before do + create(:cluster, :project, :provided_by_gcp, enabled: false, projects: [project]) + end it 'does not create any kubernetes deployment jobs' do expect(build_names).to eq %w(placeholder) end end - context 'with an active cluster' do - let!(:cluster) { create(:cluster, :project, :provided_by_gcp, projects: [project]) } - + shared_examples_for 'pipeline with deployment jobs' do context 'on master' do it 'by default' do expect(build_names).to include('production') @@ -218,5 +218,21 @@ RSpec.describe 'Jobs/Deploy.gitlab-ci.yml' do end end end + + context 'with an agent' do + before do + create(:cluster_agent, project: project) + end + + it_behaves_like 'pipeline with deployment jobs' + end + + context 'with a cluster' do + before do + create(:cluster, :project, :provided_by_gcp, projects: [project]) + end + + it_behaves_like 'pipeline with deployment jobs' + end end end diff --git a/spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb b/spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb index 7602309627b..64ef6ecd7f8 100644 --- a/spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb +++ b/spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb @@ -148,9 +148,7 @@ RSpec.describe 'Auto-DevOps.gitlab-ci.yml' do it_behaves_like 'no Kubernetes deployment job' end - context 'when the project has an active cluster' do - let!(:cluster) { create(:cluster, :project, :provided_by_gcp, projects: [project]) } - + shared_examples 'pipeline with Kubernetes jobs' do describe 'deployment-related builds' do context 'on default branch' do it 'does not include rollout jobs besides production' do @@ -233,6 +231,22 @@ RSpec.describe 'Auto-DevOps.gitlab-ci.yml' do end end end + + context 'when a cluster is attached' do + before do + create(:cluster, :project, :provided_by_gcp, projects: [project]) + end + + it_behaves_like 'pipeline with Kubernetes jobs' + end + + context 'when project has an Agent is present' do + before do + create(:cluster_agent, project: project) + end + + it_behaves_like 'pipeline with Kubernetes jobs' + end end describe 'buildpack detection' do