Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
5498125b82
commit
77ee26b43b
|
@ -13,7 +13,7 @@ import {
|
||||||
import { helpPagePath } from '~/helpers/help_page_helper';
|
import { helpPagePath } from '~/helpers/help_page_helper';
|
||||||
import GitlabExperiment from '~/experimentation/components/gitlab_experiment.vue';
|
import GitlabExperiment from '~/experimentation/components/gitlab_experiment.vue';
|
||||||
import ExperimentTracking from '~/experimentation/experiment_tracking';
|
import ExperimentTracking from '~/experimentation/experiment_tracking';
|
||||||
import { getExperimentData } from '~/experimentation/utils';
|
import { isExperimentVariant } from '~/experimentation/utils';
|
||||||
import Tracking from '~/tracking';
|
import Tracking from '~/tracking';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -70,7 +70,7 @@ export default {
|
||||||
return helpPagePath('ci/runners/runners_scope', { anchor: 'shared-runners' });
|
return helpPagePath('ci/runners/runners_scope', { anchor: 'shared-runners' });
|
||||||
},
|
},
|
||||||
runnersAvailabilitySectionExperimentEnabled() {
|
runnersAvailabilitySectionExperimentEnabled() {
|
||||||
return Boolean(getExperimentData(RUNNERS_AVAILABILITY_SECTION_EXPERIMENT_NAME));
|
return isExperimentVariant(RUNNERS_AVAILABILITY_SECTION_EXPERIMENT_NAME);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#!/usr/bin/env ruby
|
#!/usr/bin/env ruby
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require_relative '../metrics_server/dependencies'
|
||||||
require_relative '../metrics_server/metrics_server'
|
require_relative '../metrics_server/metrics_server'
|
||||||
|
|
||||||
target = ENV['METRICS_SERVER_TARGET']
|
target = ENV['METRICS_SERVER_TARGET']
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
PUMA_EXTERNAL_METRICS_SERVER = Gitlab::Utils.to_boolean(ENV['PUMA_EXTERNAL_METRICS_SERVER'])
|
PUMA_EXTERNAL_METRICS_SERVER = Gitlab::Utils.to_boolean(ENV['PUMA_EXTERNAL_METRICS_SERVER'])
|
||||||
|
require Rails.root.join('metrics_server', 'metrics_server') if PUMA_EXTERNAL_METRICS_SERVER
|
||||||
|
|
||||||
# Keep separate directories for separate processes
|
# Keep separate directories for separate processes
|
||||||
def prometheus_default_multiproc_dir
|
def prometheus_default_multiproc_dir
|
||||||
|
@ -74,8 +75,7 @@ Gitlab::Cluster::LifecycleEvents.on_master_start do
|
||||||
if Gitlab::Runtime.puma?
|
if Gitlab::Runtime.puma?
|
||||||
Gitlab::Metrics::Samplers::PumaSampler.instance.start
|
Gitlab::Metrics::Samplers::PumaSampler.instance.start
|
||||||
|
|
||||||
if Settings.monitoring.web_exporter.enabled && PUMA_EXTERNAL_METRICS_SERVER
|
if PUMA_EXTERNAL_METRICS_SERVER && Settings.monitoring.web_exporter.enabled
|
||||||
require_relative '../../metrics_server/metrics_server'
|
|
||||||
MetricsServer.start_for_puma
|
MetricsServer.start_for_puma
|
||||||
else
|
else
|
||||||
Gitlab::Metrics::Exporter::WebExporter.instance.start
|
Gitlab::Metrics::Exporter::WebExporter.instance.start
|
||||||
|
|
|
@ -6,27 +6,26 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
||||||
|
|
||||||
# External issue tracker **(FREE)**
|
# External issue tracker **(FREE)**
|
||||||
|
|
||||||
GitLab has a great [issue tracker](../user/project/issues/index.md) but you can also use an external
|
GitLab has an [issue tracker](../user/project/issues/index.md), but you can
|
||||||
one. External issue trackers are configurable per GitLab project.
|
configure an external issue tracker per GitLab project.
|
||||||
|
|
||||||
Once configured, you can reference external issues using the format `CODE-123`, where:
|
After you configure the external tracker, you can reference external issues
|
||||||
|
in GitLab merge requests, commits, and comments
|
||||||
|
using the format `CODE-123`, where:
|
||||||
|
|
||||||
- `CODE` is a unique code for the tracker.
|
- `CODE` is a unique code for the tracker.
|
||||||
- `123` is the issue number in the tracker.
|
- `123` is the issue number in the tracker.
|
||||||
|
|
||||||
These references in GitLab merge requests, commits, or comments are automatically converted to links to the issues.
|
The references are automatically converted to links to the issues.
|
||||||
|
|
||||||
You can keep the GitLab issue tracker enabled in parallel or disable it. When enabled, the **Issues** link in the
|
You can keep the GitLab issue tracker enabled in parallel or disable it. When enabled, the **Issues** link in the
|
||||||
GitLab menu always opens the internal issue tracker. When disabled, the link is not visible in the menu.
|
GitLab menu always opens the internal issue tracker. When disabled, the link is not visible in the menu.
|
||||||
|
|
||||||
## Configuration
|
## Configure an external issue tracker
|
||||||
|
|
||||||
The configuration is done via a project's **Settings > Integrations**.
|
To enable an external issue tracker, you must configure the appropriate [integration](../user/project/integrations/index.md).
|
||||||
|
|
||||||
### Integration
|
The following external issue tracker integrations are available:
|
||||||
|
|
||||||
To enable an external issue tracker you must configure the appropriate **Integration**.
|
|
||||||
Visit the links below for details:
|
|
||||||
|
|
||||||
- [Bugzilla](../user/project/integrations/bugzilla.md)
|
- [Bugzilla](../user/project/integrations/bugzilla.md)
|
||||||
- [Custom Issue Tracker](../user/project/integrations/custom_issue_tracker.md)
|
- [Custom Issue Tracker](../user/project/integrations/custom_issue_tracker.md)
|
||||||
|
@ -34,3 +33,4 @@ Visit the links below for details:
|
||||||
- [Jira](../integration/jira/index.md)
|
- [Jira](../integration/jira/index.md)
|
||||||
- [Redmine](../user/project/integrations/redmine.md)
|
- [Redmine](../user/project/integrations/redmine.md)
|
||||||
- [YouTrack](../user/project/integrations/youtrack.md)
|
- [YouTrack](../user/project/integrations/youtrack.md)
|
||||||
|
- [ZenTao](../user/project/integrations/zentao.md)
|
||||||
|
|
|
@ -8,7 +8,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
||||||
|
|
||||||
You can integrate an [external issue tracker](../../../integration/external-issue-tracker.md)
|
You can integrate an [external issue tracker](../../../integration/external-issue-tracker.md)
|
||||||
with GitLab. If your preferred issue tracker is not listed in the
|
with GitLab. If your preferred issue tracker is not listed in the
|
||||||
[integrations list](../../../integration/external-issue-tracker.md#integration),
|
[integrations list](../../../integration/external-issue-tracker.md#configure-an-external-issue-tracker),
|
||||||
you can enable a custom issue tracker.
|
you can enable a custom issue tracker.
|
||||||
|
|
||||||
After you enable the custom issue tracker, a link to the issue tracker displays
|
After you enable the custom issue tracker, a link to the issue tracker displays
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
|
|
||||||
require_relative '../config/boot'
|
require_relative '../config/boot'
|
||||||
|
|
||||||
require_relative 'dependencies'
|
|
||||||
|
|
||||||
class MetricsServer # rubocop:disable Gitlab/NamespacedClass
|
class MetricsServer # rubocop:disable Gitlab/NamespacedClass
|
||||||
# The singleton instance used to supervise the Puma metrics server.
|
# The singleton instance used to supervise the Puma metrics server.
|
||||||
PumaProcessSupervisor = Class.new(Gitlab::ProcessSupervisor)
|
PumaProcessSupervisor = Class.new(Gitlab::ProcessSupervisor)
|
||||||
|
|
|
@ -10,12 +10,10 @@ require 'time'
|
||||||
# we may run into "already initialized" warnings, hence the check.
|
# we may run into "already initialized" warnings, hence the check.
|
||||||
require_relative '../lib/gitlab' unless Object.const_defined?('Gitlab')
|
require_relative '../lib/gitlab' unless Object.const_defined?('Gitlab')
|
||||||
require_relative '../lib/gitlab/utils'
|
require_relative '../lib/gitlab/utils'
|
||||||
require_relative '../lib/gitlab/daemon'
|
|
||||||
require_relative '../lib/gitlab/sidekiq_config/cli_methods'
|
require_relative '../lib/gitlab/sidekiq_config/cli_methods'
|
||||||
require_relative '../lib/gitlab/sidekiq_config/worker_matcher'
|
require_relative '../lib/gitlab/sidekiq_config/worker_matcher'
|
||||||
require_relative '../lib/gitlab/sidekiq_logging/json_formatter'
|
require_relative '../lib/gitlab/sidekiq_logging/json_formatter'
|
||||||
require_relative '../lib/gitlab/process_management'
|
require_relative '../metrics_server/dependencies'
|
||||||
require_relative '../lib/gitlab/process_supervisor'
|
|
||||||
require_relative '../metrics_server/metrics_server'
|
require_relative '../metrics_server/metrics_server'
|
||||||
require_relative 'sidekiq_cluster'
|
require_relative 'sidekiq_cluster'
|
||||||
|
|
||||||
|
|
|
@ -134,11 +134,6 @@ describe('Pipelines CI Templates', () => {
|
||||||
wrapper = createWrapper({ anyRunnersAvailable: true }, { GitlabExperiment, GlSprintf });
|
wrapper = createWrapper({ anyRunnersAvailable: true }, { GitlabExperiment, GlSprintf });
|
||||||
});
|
});
|
||||||
|
|
||||||
it('renders the templates', () => {
|
|
||||||
expect(findTestTemplateLinks().exists()).toBe(true);
|
|
||||||
expect(findTemplateLinks().exists()).toBe(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('show the runners available section', () => {
|
it('show the runners available section', () => {
|
||||||
expect(wrapper.text()).toContain(I18N.runners.title);
|
expect(wrapper.text()).toContain(I18N.runners.title);
|
||||||
});
|
});
|
||||||
|
@ -171,11 +166,6 @@ describe('Pipelines CI Templates', () => {
|
||||||
wrapper = createWrapper({ anyRunnersAvailable: false }, { GitlabExperiment, GlButton });
|
wrapper = createWrapper({ anyRunnersAvailable: false }, { GitlabExperiment, GlButton });
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does not render the templates', () => {
|
|
||||||
expect(findTestTemplateLinks().exists()).toBe(false);
|
|
||||||
expect(findTemplateLinks().exists()).toBe(false);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('show the no runners available section', () => {
|
it('show the no runners available section', () => {
|
||||||
expect(wrapper.text()).toContain(I18N.noRunners.title);
|
expect(wrapper.text()).toContain(I18N.noRunners.title);
|
||||||
});
|
});
|
||||||
|
@ -192,4 +182,25 @@ describe('Pipelines CI Templates', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe.each`
|
||||||
|
experimentVariant | anyRunnersAvailable | templatesRendered
|
||||||
|
${'control'} | ${true} | ${true}
|
||||||
|
${'control'} | ${false} | ${true}
|
||||||
|
${'candidate'} | ${true} | ${true}
|
||||||
|
${'candidate'} | ${false} | ${false}
|
||||||
|
`(
|
||||||
|
'when the runners_availability_section experiment variant is $experimentVariant and runners are available: $anyRunnersAvailable',
|
||||||
|
({ experimentVariant, anyRunnersAvailable, templatesRendered }) => {
|
||||||
|
beforeEach(() => {
|
||||||
|
stubExperiments({ runners_availability_section: experimentVariant });
|
||||||
|
wrapper = createWrapper({ anyRunnersAvailable });
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`renders the templates: ${templatesRendered}`, () => {
|
||||||
|
expect(findTestTemplateLinks().exists()).toBe(templatesRendered);
|
||||||
|
expect(findTemplateLinks().exists()).toBe(templatesRendered);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue