.row.prepend-top-default .col-lg-12 = form_for @project, url: project_pipelines_settings_path(@project) do |f| %fieldset.builds-feature .form-group %h5 Auto DevOps (Beta) %p Auto DevOps will automatically build, test, and deploy your application based on a predefined Continuous Integration and Delivery configuration. This will happen starting with the next event (e.g.: push) that occurs to the project. = link_to 'Learn more about Auto DevOps', help_page_path('topics/autodevops/index.md') - message = auto_devops_warning_message(@project) - if message %p.settings-message.text-center = message.html_safe = f.fields_for :auto_devops_attributes, @auto_devops do |form| .radio = form.label :enabled_true do = form.radio_button :enabled, 'true' %strong Enable Auto DevOps %br %span.descr The Auto DevOps pipeline configuration will be used when there is no .gitlab-ci.yml in the project. .radio = form.label :enabled_false do = form.radio_button :enabled, 'false' %strong Disable Auto DevOps %br %span.descr An explicit .gitlab-ci.yml needs to be specified before you can begin using Continious Integration and Delivery. .radio = form.label :enabled_nil do = form.radio_button :enabled, '' %strong Instance default (#{current_application_settings.auto_devops_enabled? ? 'enabled' : 'disabled'}) %br %span.descr Follow the instance default to either have Auto DevOps enabled or disabled when there is no project specific .gitlab-ci.yml. %br %p You need to specify a domain if you want to use Auto Review Apps and Auto Deploy stages. = form.text_field :domain, class: 'form-control', placeholder: 'domain.com' %hr .form-group.append-bottom-default = f.label :runners_token, "Runner token", class: 'label-light' = f.text_field :runners_token, class: "form-control", placeholder: 'xEeFCaDAB89' %p.help-block The secure token used by the Runner to checkout the project %hr .form-group %h5.prepend-top-0 Git strategy for pipelines %p Choose between clone or fetch to get the recent application code = link_to icon('question-circle'), help_page_path('user/project/pipelines/settings', anchor: 'git-strategy'), target: '_blank' .radio = f.label :build_allow_git_fetch_false do = f.radio_button :build_allow_git_fetch, 'false' %strong git clone %br %span.descr Slower but makes sure the project workspace is pristine as it clones the repository from scratch for every job .radio = f.label :build_allow_git_fetch_true do = f.radio_button :build_allow_git_fetch, 'true' %strong git fetch %br %span.descr Faster as it re-uses the project workspace (falling back to clone if it doesn't exist) %hr .form-group = f.label :build_timeout_in_minutes, 'Timeout', class: 'label-light' = f.number_field :build_timeout_in_minutes, class: 'form-control', min: '0' %p.help-block Per job in minutes. If a job passes this threshold, it will be marked as failed = link_to icon('question-circle'), help_page_path('user/project/pipelines/settings', anchor: 'timeout'), target: '_blank' %hr .form-group = f.label :ci_config_path, 'Custom CI config path', class: 'label-light' = f.text_field :ci_config_path, class: 'form-control', placeholder: '.gitlab-ci.yml' %p.help-block The path to CI config file. Defaults to .gitlab-ci.yml = link_to icon('question-circle'), help_page_path('user/project/pipelines/settings', anchor: 'custom-ci-config-path'), target: '_blank' %hr .form-group .checkbox = f.label :public_builds do = f.check_box :public_builds %strong Public pipelines .help-block Allow public access to pipelines and job details, including output logs and artifacts = link_to icon('question-circle'), help_page_path('user/project/pipelines/settings', anchor: 'visibility-of-pipelines'), target: '_blank' .bs-callout.bs-callout-info %p If enabled: %ul %li For public projects, anyone can view pipelines and access job details (output logs and artifacts) %li For internal projects, any logged in user can view pipelines and access job details (output logs and artifacts) %li For private projects, any member (guest or higher) can view pipelines and access job details (output logs and artifacts) %p If disabled, the access level will depend on the user's permissions in the project. %hr .form-group .checkbox = f.label :auto_cancel_pending_pipelines do = f.check_box :auto_cancel_pending_pipelines, {}, 'enabled', 'disabled' %strong Auto-cancel redundant, pending pipelines .help-block New pipelines will cancel older, pending pipelines on the same branch = link_to icon('question-circle'), help_page_path('user/project/pipelines/settings', anchor: 'auto-cancel-pending-pipelines'), target: '_blank' %hr .form-group = f.label :build_coverage_regex, "Test coverage parsing", class: 'label-light' .input-group %span.input-group-addon / = f.text_field :build_coverage_regex, class: 'form-control', placeholder: 'Regular expression' %span.input-group-addon / %p.help-block A regular expression that will be used to find the test coverage output in the job trace. Leave blank to disable = link_to icon('question-circle'), help_page_path('user/project/pipelines/settings', anchor: 'test-coverage-parsing'), target: '_blank' .bs-callout.bs-callout-info %p Below are examples of regex for existing tools: %ul %li Simplecov (Ruby) - %code \(\d+.\d+\%\) covered %li pytest-cov (Python) - %code \d+\%\s*$ %li phpunit --coverage-text --colors=never (PHP) - %code ^\s*Lines:\s*\d+.\d+\% %li gcovr (C/C++) - %code ^TOTAL.*\s+(\d+\%)$ %li tap --coverage-report=text-summary (NodeJS) - %code ^Statements\s*:\s*([^%]+) %li excoveralls (Elixir) - %code \[TOTAL\]\s+(\d+\.\d+)% = f.submit 'Save changes', class: "btn btn-save" %hr .row.prepend-top-default = render partial: 'projects/pipelines_settings/badge', collection: @badges