Commit 5d1839b2 authored by GitLab Bot's avatar GitLab Bot

Automatic merge of gitlab-org/gitlab master

parents 2569cb80 99253941
...@@ -41,6 +41,7 @@ exceptions: ...@@ -41,6 +41,7 @@ exceptions:
- GCP - GCP
- GDK - GDK
- GET - GET
- GIF
- GKE - GKE
- GNU - GNU
- GPG - GPG
...@@ -56,6 +57,8 @@ exceptions: ...@@ -56,6 +57,8 @@ exceptions:
- IMAP - IMAP
- IRC - IRC
- ISO - ISO
- JPEG
- JPG
- JSON - JSON
- LAN - LAN
- LDAP - LDAP
...@@ -76,6 +79,7 @@ exceptions: ...@@ -76,6 +79,7 @@ exceptions:
- PDF - PDF
- PGP - PGP
- PHP - PHP
- PNG
- POST - POST
- PUT - PUT
- RAM - RAM
...@@ -92,6 +96,7 @@ exceptions: ...@@ -92,6 +96,7 @@ exceptions:
- SCP - SCP
- SCSS - SCSS
- SDK - SDK
- SEO
- SHA - SHA
- SLA - SLA
- SMTP - SMTP
......
...@@ -120,6 +120,7 @@ dequarantining ...@@ -120,6 +120,7 @@ dequarantining
DevOps DevOps
discoverability discoverability
Disqus Disqus
Divio
Dockerfile Dockerfile
Dockerfiles Dockerfiles
dogfood dogfood
...@@ -344,6 +345,7 @@ prepend ...@@ -344,6 +345,7 @@ prepend
prepended prepended
prepending prepending
prepends prepends
Prettifier
Pritaly Pritaly
profiler profiler
Prometheus Prometheus
......
<script> <script>
import { GlTooltipDirective, GlLink, GlButton, GlIcon } from '@gitlab/ui'; import { GlDropdown, GlDropdownItem, GlTooltipDirective, GlLink, GlIcon } from '@gitlab/ui';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import ProjectAvatar from '~/vue_shared/components/project_avatar/default.vue'; import ProjectAvatar from '~/vue_shared/components/project_avatar/default.vue';
export default { export default {
components: { components: {
GlDropdown,
GlDropdownItem,
GlIcon, GlIcon,
ProjectAvatar, ProjectAvatar,
GlLink, GlLink,
GlButton,
}, },
directives: { directives: {
GlTooltip: GlTooltipDirective, GlTooltip: GlTooltipDirective,
...@@ -32,9 +33,9 @@ export default { ...@@ -32,9 +33,9 @@ export default {
<template> <template>
<div <div
class="d-flex align-items-center page-title-holder text-secondary justify-content-between pb-2 mb-3" class="gl-display-flex gl-align-items-center page-title-holder text-secondary gl-justify-content-space-between pb-2 mb-3"
> >
<div class="d-flex align-items-center"> <div class="gl-display-flex gl-align-items-center">
<project-avatar :project="project.namespace" :size="20" class="flex-shrink-0" /> <project-avatar :project="project.namespace" :size="20" class="flex-shrink-0" />
<gl-link class="js-namespace-link text-secondary" :href="`/${project.namespace.full_path}`"> <gl-link class="js-namespace-link text-secondary" :href="`/${project.namespace.full_path}`">
<span class="js-namespace gl-mr-3"> {{ project.namespace.name }} </span> <span class="js-namespace gl-mr-3"> {{ project.namespace.name }} </span>
...@@ -45,23 +46,23 @@ export default { ...@@ -45,23 +46,23 @@ export default {
<span class="js-name gl-mr-3"> {{ project.name }} </span> <span class="js-name gl-mr-3"> {{ project.name }} </span>
</gl-link> </gl-link>
</div> </div>
<div class="dropdown js-more-actions"> <div class="gl-display-flex js-more-actions">
<button <gl-dropdown
toggle-class="js-more-actions-toggle gl-display-flex gl-align-items-center gl-px-3! gl-bg-transparent gl-shadow-none!"
right
>
<template #button-content>
<gl-icon
v-gl-tooltip v-gl-tooltip
class="js-more-actions-toggle d-flex align-items-center ml-2 btn btn-transparent"
type="button"
data-toggle="dropdown"
:title="$options.moreActionsText" :title="$options.moreActionsText"
> name="ellipsis_v"
<gl-icon name="ellipsis_v" class="text-secondary" /> class="text-secondary"
</button> />
<ul class="dropdown-menu dropdown-menu-right"> </template>
<li> <gl-dropdown-item class="js-remove-button" variant="link" @click="onRemove()">
<gl-button class="js-remove-button" variant="link" @click="onRemove()">
<span class="text-danger"> {{ $options.removeProjectText }} </span> <span class="text-danger"> {{ $options.removeProjectText }} </span>
</gl-button> </gl-dropdown-item>
</li> </gl-dropdown>
</ul>
</div> </div>
</div> </div>
</template> </template>
.card.card-without-border %ul.content-list.issuable-list
%ul.content-list.issuable-list
= render partial: 'groups/epics/epic', collection: @epics = render partial: 'groups/epics/epic', collection: @epics
= paginate_collection @epics = paginate_collection @epics
---
title: Remove Bootstrap 4's Cards class name from Epics
merge_request: 48856
author: Takuya Noguchi
type: performance
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
exports[`Project Header matches the snapshot 1`] = ` exports[`Project Header matches the snapshot 1`] = `
<div <div
class="d-flex align-items-center page-title-holder text-secondary justify-content-between pb-2 mb-3" class="gl-display-flex gl-align-items-center page-title-holder text-secondary gl-justify-content-space-between pb-2 mb-3"
> >
<div <div
class="d-flex align-items-center" class="gl-display-flex gl-align-items-center"
> >
<project-avatar-stub <project-avatar-stub
class="flex-shrink-0" class="flex-shrink-0"
...@@ -48,31 +48,26 @@ exports[`Project Header matches the snapshot 1`] = ` ...@@ -48,31 +48,26 @@ exports[`Project Header matches the snapshot 1`] = `
</div> </div>
<div <div
class="dropdown js-more-actions" class="gl-display-flex js-more-actions"
> >
<button <gl-dropdown-stub
class="js-more-actions-toggle d-flex align-items-center ml-2 btn btn-transparent" category="primary"
data-toggle="dropdown" headertext=""
title="More actions" right=""
type="button" size="medium"
text=""
toggleclass="js-more-actions-toggle gl-display-flex gl-align-items-center gl-px-3! gl-bg-transparent gl-shadow-none!"
variant="default"
> >
<gl-icon-stub
class="text-secondary"
name="ellipsis_v"
size="16"
/>
</button>
<ul <gl-dropdown-item-stub
class="dropdown-menu dropdown-menu-right" avatarurl=""
>
<li>
<gl-button-stub
buttontextclasses=""
category="primary"
class="js-remove-button" class="js-remove-button"
icon="" iconcolor=""
size="medium" iconname=""
iconrightarialabel=""
iconrightname=""
secondarytext=""
variant="link" variant="link"
> >
<span <span
...@@ -80,9 +75,8 @@ exports[`Project Header matches the snapshot 1`] = ` ...@@ -80,9 +75,8 @@ exports[`Project Header matches the snapshot 1`] = `
> >
Remove Remove
</span> </span>
</gl-button-stub> </gl-dropdown-item-stub>
</li> </gl-dropdown-stub>
</ul>
</div> </div>
</div> </div>
`; `;
import { GlButton } from '@gitlab/ui'; import { GlDropdown, GlDropdownItem } from '@gitlab/ui';
import { shallowMount } from '@vue/test-utils'; import { shallowMount } from '@vue/test-utils';
import component from 'ee/environments_dashboard/components/dashboard/project_header.vue'; import component from 'ee/environments_dashboard/components/dashboard/project_header.vue';
import ProjectAvatar from '~/vue_shared/components/project_avatar/default.vue'; import ProjectAvatar from '~/vue_shared/components/project_avatar/default.vue';
...@@ -66,21 +66,18 @@ describe('Project Header', () => { ...@@ -66,21 +66,18 @@ describe('Project Header', () => {
describe('more actions', () => { describe('more actions', () => {
it('should list "remove" as an action', () => { it('should list "remove" as an action', () => {
const removeLink = wrapper const removeLink = wrapper
.find('.dropdown-menu') .find(GlDropdown)
.findAll('li') .findAll(GlDropdownItem)
.filter(w => w.text() === 'Remove'); .filter(w => w.text() === 'Remove');
expect(removeLink.exists()).toBe(true); expect(removeLink.exists()).toBe(true);
}); });
it('should emit a "remove" event when "remove" is clicked', () => { it('should emit a "remove" event when "remove" is clicked', () => {
const removeLink = wrapper const removeLink = wrapper
.find('.dropdown-menu') .find(GlDropdown)
.findAll('li') .findAll(GlDropdownItem)
.filter(w => w.text() === 'Remove'); .filter(w => w.text() === 'Remove');
removeLink removeLink.at(0).vm.$emit('click');
.at(0)
.find(GlButton)
.vm.$emit('click');
return wrapper.vm.$nextTick().then(() => { return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted('remove')).toContainEqual([propsData.project.remove_path]); expect(wrapper.emitted('remove')).toContainEqual([propsData.project.remove_path]);
......
...@@ -3,9 +3,8 @@ ...@@ -3,9 +3,8 @@
require 'faker' require 'faker'
module QA module QA
RSpec.describe 'Verify', :runner, :requires_admin, :skip_live_env do RSpec.describe 'Verify', :runner do
describe "Include multiple files from a project" do describe 'Include multiple files from a project' do
let(:feature_flag) { :ci_include_multiple_files_from_project }
let(:executor) { "qa-runner-#{Faker::Alphanumeric.alphanumeric(8)}" } let(:executor) { "qa-runner-#{Faker::Alphanumeric.alphanumeric(8)}" }
let(:expected_text) { Faker::Lorem.sentence } let(:expected_text) { Faker::Lorem.sentence }
let(:unexpected_text) { Faker::Lorem.sentence } let(:unexpected_text) { Faker::Lorem.sentence }
...@@ -31,7 +30,6 @@ module QA ...@@ -31,7 +30,6 @@ module QA
end end
before do before do
Runtime::Feature.enable(feature_flag)
Flow::Login.sign_in Flow::Login.sign_in
add_included_files add_included_files
add_main_ci_file add_main_ci_file
...@@ -40,7 +38,6 @@ module QA ...@@ -40,7 +38,6 @@ module QA
end end
after do after do
Runtime::Feature.disable(feature_flag)
runner.remove_via_api! runner.remove_via_api!
end end
......
...@@ -3,9 +3,8 @@ ...@@ -3,9 +3,8 @@
require 'faker' require 'faker'
module QA module QA
RSpec.describe 'Verify', :runner, :requires_admin do RSpec.describe 'Verify', :runner do
describe "Pass dotenv variables to downstream via bridge" do describe 'Pass dotenv variables to downstream via bridge' do
let(:feature_flag) { :ci_bridge_dependency_variables }
let(:executor_1) { "qa-runner-#{Faker::Alphanumeric.alphanumeric(8)}" } let(:executor_1) { "qa-runner-#{Faker::Alphanumeric.alphanumeric(8)}" }
let(:executor_2) { "qa-runner-#{Faker::Alphanumeric.alphanumeric(8)}" } let(:executor_2) { "qa-runner-#{Faker::Alphanumeric.alphanumeric(8)}" }
...@@ -38,7 +37,6 @@ module QA ...@@ -38,7 +37,6 @@ module QA
end end
before do before do
Runtime::Feature.enable(feature_flag)
Flow::Login.sign_in Flow::Login.sign_in
add_ci_file(downstream_project, downstream_ci_file) add_ci_file(downstream_project, downstream_ci_file)
add_ci_file(upstream_project, upstream_ci_file) add_ci_file(upstream_project, upstream_ci_file)
...@@ -47,7 +45,6 @@ module QA ...@@ -47,7 +45,6 @@ module QA
end end
after do after do
Runtime::Feature.disable(feature_flag)
runner_1.remove_via_api! runner_1.remove_via_api!
runner_2.remove_via_api! runner_2.remove_via_api!
end end
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
module QA module QA
RSpec.describe 'Verify' do RSpec.describe 'Verify' do
describe 'Run pipeline', only: { subdomain: :staging } do describe 'Run pipeline' do
context 'with web only rule' do context 'with web only rule' do
let(:job_name) { 'test_job' } let(:job_name) { 'test_job' }
let(:project) do let(:project) do
......
...@@ -3,11 +3,8 @@ ...@@ -3,11 +3,8 @@
require 'faker' require 'faker'
module QA module QA
RSpec.describe 'Verify', :runner, :requires_admin do RSpec.describe 'Verify', :runner do
# [TODO]: Developer to remove :requires_admin once FF is removed in follow up issue
describe "Trigger child pipeline with 'when:manual'" do describe "Trigger child pipeline with 'when:manual'" do
let(:feature_flag) { :ci_manual_bridges } # [TODO]: Developer to remove when feature flag is removed
let(:executor) { "qa-runner-#{Faker::Alphanumeric.alphanumeric(8)}" } let(:executor) { "qa-runner-#{Faker::Alphanumeric.alphanumeric(8)}" }
let(:project) do let(:project) do
...@@ -25,7 +22,6 @@ module QA ...@@ -25,7 +22,6 @@ module QA
end end
before do before do
Runtime::Feature.enable(feature_flag) # [TODO]: Developer to remove when feature flag is removed
Flow::Login.sign_in Flow::Login.sign_in
add_ci_files add_ci_files
project.visit! project.visit!
...@@ -33,7 +29,6 @@ module QA ...@@ -33,7 +29,6 @@ module QA
end end
after do after do
Runtime::Feature.disable(feature_flag) # [TODO]: Developer to remove when feature flag is removed
runner.remove_via_api! runner.remove_via_api!
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