summaryrefslogtreecommitdiff
path: root/app/views/projects/settings/ci_cd/_form.html.haml
blob: 5ef56cda6d20dc395cc3c87c4c77991c021a7fb9 (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
- help_link_public_pipelines = link_to sprite_icon('question-o'), help_page_path('ci/pipelines/settings', anchor: 'change-which-users-can-view-your-pipelines'), target: '_blank', rel: 'noopener noreferrer'
- help_link_auto_canceling = link_to sprite_icon('question-o'), help_page_path('ci/pipelines/settings', anchor: 'auto-cancel-redundant-pipelines'), target: '_blank', rel: 'noopener noreferrer'
- help_link_skip_outdated =link_to sprite_icon('question-o'), help_page_path('ci/pipelines/settings', anchor: 'skip-outdated-deployment-jobs'), target: '_blank', rel: 'noopener noreferrer'

.row.gl-mt-3
  .col-lg-12
    = gitlab_ui_form_for @project, url: project_settings_ci_cd_path(@project, anchor: 'js-general-pipeline-settings') do |f|
      = form_errors(@project)
      %fieldset.builds-feature
        .form-group
          = f.gitlab_ui_checkbox_component :public_builds,
            _("Public pipelines"),
            help_text: (_('Allow public access to pipelines and job details, including output logs and artifacts.') + ' ' + help_link_public_pipelines).html_safe

        .form-group
          = f.gitlab_ui_checkbox_component :auto_cancel_pending_pipelines,
            _("Auto-cancel redundant pipelines"),
            checked_value: 'enabled',
            unchecked_value: 'disabled',
            help_text: (_('New pipelines cause older pending or running pipelines on the same branch to be cancelled.') + ' ' + help_link_auto_canceling).html_safe

        .form-group
          = f.fields_for :ci_cd_settings_attributes, @project.ci_cd_settings do |form|
            = form.gitlab_ui_checkbox_component :forward_deployment_enabled, _("Skip outdated deployment jobs"),
              help_text: (_('When a deployment job is successful, skip older deployment jobs that are still pending.') + ' ' + help_link_skip_outdated).html_safe

        .form-group
          = f.label :ci_config_path, _('CI/CD configuration file'), class: 'label-bold'
          = f.text_field :ci_config_path, class: 'form-control', placeholder: '.gitlab-ci.yml'
          %p.form-text.text-muted
            = html_escape(_("The name of the CI/CD configuration file. A path relative to the root directory is optional (for example %{code_open}my/path/.myfile.yml%{code_close}).")) % { code_open: '<code>'.html_safe, code_close: '</code>'.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'

        %hr
        .form-group
          %h5.gl-mt-0
            = _("Git strategy")
          %p
            = _("Choose which Git strategy to use when fetching the project.")
            = link_to sprite_icon('question-o'), help_page_path('ci/pipelines/settings', anchor: 'choose-the-default-git-strategy'), target: '_blank', rel: 'noopener noreferrer'
          .form-check
            = f.radio_button :build_allow_git_fetch, 'false', { class: 'form-check-input' }
            = f.label :build_allow_git_fetch_false, class: 'form-check-label' do
              %strong git clone
              %br
              %span
                = _("For each job, clone the repository.")
          .form-check
            = f.radio_button :build_allow_git_fetch, 'true', { class: 'form-check-input' }
            = f.label :build_allow_git_fetch_true, class: 'form-check-label' do
              %strong git fetch
              %br
              %span
                = html_escape(_("For each job, re-use the project workspace. If the workspace doesn't exist, use %{code_open}git clone%{code_close}.")) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }

        .form-group
          = f.fields_for :ci_cd_settings_attributes, @project.ci_cd_settings do |form|
            = form.label :default_git_depth, _('Git shallow clone'), class: 'label-bold'
            = form.number_field :default_git_depth, { class: 'form-control gl-form-input', min: 0, max: 1000 }
            %p.form-text.text-muted
              = html_escape(_('The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
              = link_to sprite_icon('question-o'), help_page_path('ci/pipelines/settings', anchor: 'limit-the-number-of-changes-fetched-during-clone'), target: '_blank', rel: 'noopener noreferrer'

        %hr
        .form-group
          = f.label :build_timeout_human_readable, _('Timeout'), class: 'label-bold'
          = f.text_field :build_timeout_human_readable, class: 'form-control gl-form-input'
          %p.form-text.text-muted
            = html_escape(_('Jobs fail if they run longer than the timeout time. Input value is in seconds by default. Human readable input is also accepted, for example %{code_open}1 hour%{code_close}.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
            = link_to sprite_icon('question-o'), help_page_path('ci/pipelines/settings', anchor: 'set-a-limit-for-how-long-jobs-can-run'), target: '_blank', rel: 'noopener noreferrer'

        - if can?(current_user, :update_max_artifacts_size, @project)
          .form-group
            = f.label :max_artifacts_size, _('Maximum artifacts size'), class: 'label-bold'
            = f.number_field :max_artifacts_size, class: 'form-control gl-form-input'
            %p.form-text.text-muted
              = _("The maximum file size in megabytes for individual job artifacts.")
              = link_to sprite_icon('question-o'), help_page_path('user/admin_area/settings/continuous_integration', anchor: 'maximum-artifacts-size'), target: '_blank', rel: 'noopener noreferrer'

        .form-group
          = f.label :build_coverage_regex, _("Test coverage parsing"), class: 'label-bold'
          .input-group
            %span.input-group-prepend
              .input-group-text /
            = f.text_field :build_coverage_regex, class: 'form-control gl-form-input', placeholder: 'Regular expression', data: { qa_selector: 'build_coverage_regex_field' }
            %span.input-group-append
              .input-group-text /
          %p.form-text.text-muted
            = html_escape(_('The regular expression used to find test coverage output in the job log. For example, use %{regex} for Simplecov (Ruby). Leave blank to disable.')) % { regex: '<code>\(\d+.\d+%\)</code>'.html_safe }
            = link_to sprite_icon('question-o'), help_page_path('ci/pipelines/settings', anchor: 'add-test-coverage-results-using-project-settings-deprecated'), target: '_blank', rel: 'noopener noreferrer'

        = f.submit _('Save changes'), class: "btn gl-button btn-confirm", data: { qa_selector: 'save_general_pipelines_changes_button' }

%hr

.row.gl-mt-3
  = render partial: 'badge', collection: @badges