summaryrefslogtreecommitdiff
path: root/app/views/admin/application_settings/_ci_cd.html.haml
blob: 201ca830ba4db40183bff6b144d52c50b6bf3e8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
.settings-content
  = gitlab_ui_form_for @application_setting, url: ci_cd_admin_application_settings_path(anchor: 'js-ci-cd-settings'), html: { class: 'fieldset-form' } do |f|
    = form_errors(@application_setting)

    %fieldset
      .form-group
        - devops_help_link_url = help_page_path('topics/autodevops/index.md')
        - devops_help_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: devops_help_link_url }
        = f.gitlab_ui_checkbox_component :auto_devops_enabled, s_('CICD|Default to Auto DevOps pipeline for all projects'), help_text: s_('CICD|The Auto DevOps pipeline runs by default in all projects with no CI/CD configuration file. %{link_start}What is Auto DevOps?%{link_end}').html_safe % { link_start: devops_help_link_start, link_end: '</a>'.html_safe }
      .form-group
        = f.label :auto_devops_domain, s_('AdminSettings|Auto DevOps domain'), class: 'label-bold'
        = f.text_field :auto_devops_domain, class: 'form-control gl-form-input', placeholder: 'example.com'
        .form-text.text-muted
          = s_("AdminSettings|The default domain to use for Auto Review Apps and Auto Deploy stages in all projects.")
          = link_to _('Learn more.'), help_page_path('topics/autodevops/stages.md', anchor: 'auto-review-apps'), target: '_blank', rel: 'noopener noreferrer'

      .form-group
        = f.gitlab_ui_checkbox_component :shared_runners_enabled, s_("AdminSettings|Enable shared runners for new projects"), help_text: s_("AdminSettings|All new projects can use the instance's shared runners by default.")

      = render_if_exists 'admin/application_settings/shared_runners_minutes_setting', form: f

      .form-group
        = f.label :shared_runners_text, _('Shared runners details'), class: 'label-bold'
        = f.text_area :shared_runners_text, class: 'form-control gl-form-input', rows: 4
        .form-text.text-muted= _("Add a custom message with details about the instance's shared runners. The message is visible in group and project CI/CD settings, in the Runners section. Markdown is supported.")
      .form-group
        = f.label :max_artifacts_size, _('Maximum artifacts size (MB)'), class: 'label-bold'
        = f.number_field :max_artifacts_size, class: 'form-control gl-form-input'
        .form-text.text-muted
          = _("The maximum file size for job artifacts.")
          = link_to _('Learn more.'), help_page_path('user/admin_area/settings/continuous_integration', anchor: 'maximum-artifacts-size')
      .form-group
        = f.label :default_artifacts_expire_in, _('Default artifacts expiration'), class: 'label-bold'
        = f.text_field :default_artifacts_expire_in, class: 'form-control gl-form-input'
        .form-text.text-muted
          = html_escape(_("Set the default expiration time for job artifacts in all projects. Set to %{code_open}0%{code_close} to never expire artifacts by default. If no unit is written, it defaults to seconds. For example, these are all equivalent: %{code_open}3600%{code_close}, %{code_open}60 minutes%{code_close}, or %{code_open}one hour%{code_close}.")) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
          = link_to _('Learn more.'), help_page_path('user/admin_area/settings/continuous_integration', anchor: 'default-artifacts-expiration')
      .form-group
        = f.gitlab_ui_checkbox_component :keep_latest_artifact, s_('AdminSettings|Keep the latest artifacts for all jobs in the latest successful pipelines'), help_text: s_('AdminSettings|The latest artifacts for all jobs in the most recent successful pipelines in each project are stored and do not expire.')
      .form-group
        = f.label :archive_builds_in_human_readable, _('Archive jobs'), class: 'label-bold'
        = f.text_field :archive_builds_in_human_readable, class: 'form-control gl-form-input'
        .form-text.text-muted
          = html_escape(_("Jobs older than the configured time are considered expired and are archived. Archived jobs can no longer be retried. Leave empty to never archive jobs automatically. The default unit is in days, but you can use other units, for example %{code_open}15 days%{code_close}, %{code_open}1 month%{code_close}, %{code_open}2 years%{code_close}. Minimum value is 1 day.")) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
          = link_to _('Learn more.'), help_page_path('user/admin_area/settings/continuous_integration', anchor: 'archive-jobs')
      .form-group
        = f.gitlab_ui_checkbox_component :protected_ci_variables, s_('AdminSettings|Protect CI/CD variables by default'), help_text: s_('AdminSettings|New CI/CD variables in projects and groups default to protected.')
      .form-group
        = f.label :ci_config_path, _('Default CI/CD configuration file'), class: 'label-bold'
        = f.text_field :default_ci_config_path, class: 'form-control gl-form-input', placeholder: '.gitlab-ci.yml'
        %p.form-text.text-muted
          = _("The default CI/CD configuration file and path for new projects.").html_safe
          = link_to sprite_icon('question-o'), help_page_path('ci/pipelines/settings', anchor: 'specify-a-custom-cicd-configuration-file'), target: '_blank', rel: 'noopener noreferrer'
      .form-group
        = f.gitlab_ui_checkbox_component :suggest_pipeline_enabled, s_('AdminSettings|Enable pipeline suggestion banner'), help_text: s_('AdminSettings|Display a banner on merge requests in projects with no pipelines to initiate steps to add a .gitlab-ci.yml file.')

    = f.submit _('Save changes'), class: "gl-button btn btn-confirm"

.settings-content
  %h4
    = s_('AdminSettings|CI/CD limits')
  %p
    = s_('AdminSettings|Set limit to 0 to disable it.')
  .scrolling-tabs-container.inner-page-scroll-tabs
    - if @plans.size > 1
      %ul.nav-links.scrolling-tabs.mobile-separator.nav.nav-tabs.gl-mb-5
        - @plans.each_with_index do |plan, index|
          %li
            = link_to admin_plan_limits_path(anchor: 'js-ci-cd-settings'), data: { target: "div#plan#{index}", action: "plan#{index}", toggle: 'tab'}, class: index == 0 ? 'active': '' do
              = plan.name.capitalize
    .tab-content.gl-tab-content
      - @plans.each_with_index do |plan, index|
        .tab-pane{ :id => "plan#{index}", class: index == 0 ? 'active': '' }
          = form_for plan.actual_limits, url: admin_plan_limits_path(anchor: 'js-ci-cd-settings'), html: { class: 'fieldset-form' }, method: :post do |f|
            = form_errors(plan)
            %fieldset
              = f.hidden_field(:plan_id, value: plan.id)
              .form-group
                = f.label :ci_pipeline_size, s_('AdminSettings|Maximum number of jobs in a single pipeline')
                = f.number_field :ci_pipeline_size, class: 'form-control gl-form-input'
              .form-group
                = f.label :ci_active_jobs, s_('AdminSettings|Total number of jobs in currently active pipelines')
                = f.number_field :ci_active_jobs, class: 'form-control gl-form-input'
              .form-group
                = f.label :ci_active_pipelines, s_('AdminSettings|Maximum number of active pipelines per project')
                = f.number_field :ci_active_pipelines, class: 'form-control gl-form-input'
              .form-group
                = f.label :ci_project_subscriptions, s_('AdminSettings|Maximum number of pipeline subscriptions to and from a project')
                = f.number_field :ci_project_subscriptions, class: 'form-control gl-form-input'
              .form-group
                = f.label :ci_pipeline_schedules, s_('AdminSettings|Maximum number of pipeline schedules')
                = f.number_field :ci_pipeline_schedules, class: 'form-control gl-form-input'
              .form-group
                = f.label :ci_needs_size_limit, s_('AdminSettings|Maximum number of DAG dependencies that a job can have')
                = f.number_field :ci_needs_size_limit, class: 'form-control gl-form-input'
              .form-group
                = f.label :ci_registered_group_runners, s_('AdminSettings|Maximum number of runners registered per group')
                = f.number_field :ci_registered_group_runners, class: 'form-control gl-form-input'
              .form-group
                = f.label :ci_registered_project_runners, s_('AdminSettings|Maximum number of runners registered per project')
                = f.number_field :ci_registered_project_runners, class: 'form-control gl-form-input'
              = f.submit s_('AdminSettings|Save %{name} limits').html_safe % { name: plan.name.capitalize }, class: 'btn gl-button btn-confirm'