summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbokebilly <fobio@gitlab.com>2017-09-16 15:02:37 +0200
committerKamil Trzcinski <ayufan@ayufan.eu>2017-09-19 15:32:31 +0200
commit3017697701eaecd301edfbc2e4f7c865456f1b0f (patch)
treeb5d4e52c5de0c42929f145607efdb1972d5949fa
parent4c6c105909ea610eac760b05e66d9efc57cbb43c (diff)
downloadgitlab-ce-3017697701eaecd301edfbc2e4f7c865456f1b0f.tar.gz
Add warning message if domain or cluster are not configured
-rw-r--r--app/helpers/auto_devops_helper.rb21
-rw-r--r--app/models/project_auto_devops.rb4
-rw-r--r--app/views/projects/pipelines_settings/_show.html.haml19
-rw-r--r--app/views/projects/settings/ci_cd/show.html.haml2
-rw-r--r--changelogs/unreleased/37894-handle-if-auto-devops-domain-is-not-set.yml5
-rw-r--r--spec/models/project_auto_devops_spec.rb8
6 files changed, 47 insertions, 12 deletions
diff --git a/app/helpers/auto_devops_helper.rb b/app/helpers/auto_devops_helper.rb
index c455d18cff8..5da68a2d03d 100644
--- a/app/helpers/auto_devops_helper.rb
+++ b/app/helpers/auto_devops_helper.rb
@@ -5,6 +5,25 @@ module AutoDevopsHelper
can?(current_user, :admin_pipeline, project) &&
project.has_auto_devops_implicitly_disabled? &&
!project.repository.gitlab_ci_yml &&
- project.ci_services.active.none?
+ !project.ci_service
+ end
+
+ def auto_devops_warning_message(project)
+ missing_domain = !project.auto_devops&.has_domain?
+ missing_service = !project.kubernetes_service&.active?
+
+ if missing_service
+ params = {
+ kubernetes: link_to('Kubernetes service', edit_project_service_path(project, 'kubernetes'))
+ }
+
+ if missing_domain
+ _('Auto Review Apps and Auto Deploy need a domain name and the %s to work correctly.') % params
+ else
+ _('Auto Review Apps and Auto Deploy need the %s to work correctly.') % params
+ end
+ elsif missing_domain
+ _('Auto Review Apps and Auto Deploy need a domain name to work correctly.')
+ end
end
end
diff --git a/app/models/project_auto_devops.rb b/app/models/project_auto_devops.rb
index 7af3b6870e2..9a52edbff8e 100644
--- a/app/models/project_auto_devops.rb
+++ b/app/models/project_auto_devops.rb
@@ -6,6 +6,10 @@ class ProjectAutoDevops < ActiveRecord::Base
validates :domain, allow_blank: true, hostname: { allow_numeric_hostname: true }
+ def has_domain?
+ domain.present?
+ end
+
def variables
variables = []
variables << { key: 'AUTO_DEVOPS_DOMAIN', value: domain, public: true } if domain.present?
diff --git a/app/views/projects/pipelines_settings/_show.html.haml b/app/views/projects/pipelines_settings/_show.html.haml
index 2aceb4b529c..1f116c93192 100644
--- a/app/views/projects/pipelines_settings/_show.html.haml
+++ b/app/views/projects/pipelines_settings/_show.html.haml
@@ -3,11 +3,14 @@
= form_for @project, url: project_pipelines_settings_path(@project) do |f|
%fieldset.builds-feature
.form-group
- %p Pipelines need to have Auto DevOps enabled or have a .gitlab-ci.yml configured before you can begin using Continuous Integration and Delivery.
%h5 Auto DevOps (Beta)
%p
- Auto DevOps will automatically build, test, and deploy your application based on a predefined Continious Integration and Delivery configuration.
+ Auto DevOps will automatically build, test, and deploy your application based on a predefined Continuous Integration and Delivery configuration.
= 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
@@ -15,26 +18,24 @@
%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.
+ The Auto DevOps pipeline configuration will be used when there is no <code>.gitlab-ci.yml</code> in the project.
.radio
= form.label :enabled_false do
= form.radio_button :enabled, 'false'
%strong Disable Auto DevOps
%br
%span.descr
- A specific .gitlab-ci.yml file needs to be specified before you can begin using Continious Integration and Delivery.
+ An explicit <code>.gitlab-ci.yml</code> 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 (status: #{current_application_settings.auto_devops_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 file specified.
+ Follow the instance default to either have Auto DevOps enabled or disabled when there is no project specific <code>.gitlab-ci.yml</code>.
%br
%p
- Define a domain used by Auto DevOps to deploy towards, this is required for deploys to succeed.
+ 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
diff --git a/app/views/projects/settings/ci_cd/show.html.haml b/app/views/projects/settings/ci_cd/show.html.haml
index d4f71d023c6..4e682d196c4 100644
--- a/app/views/projects/settings/ci_cd/show.html.haml
+++ b/app/views/projects/settings/ci_cd/show.html.haml
@@ -13,7 +13,7 @@
%button.btn.js-settings-toggle
= expanded ? 'Collapse' : 'Expand'
%p
- Update your CI/CD configuration, like job timeout.
+ Update your CI/CD configuration. You need a CI/CD configuration file or Auto DevOps enabled in order to use pipelines.
.settings-content.no-animate{ class: ('expanded' if expanded) }
= render 'projects/pipelines_settings/show'
diff --git a/changelogs/unreleased/37894-handle-if-auto-devops-domain-is-not-set.yml b/changelogs/unreleased/37894-handle-if-auto-devops-domain-is-not-set.yml
new file mode 100644
index 00000000000..bbb12ff41b1
--- /dev/null
+++ b/changelogs/unreleased/37894-handle-if-auto-devops-domain-is-not-set.yml
@@ -0,0 +1,5 @@
+---
+title: Handle if Auto DevOps domain is not set in project settings
+merge_request:
+author:
+type: added
diff --git a/spec/models/project_auto_devops_spec.rb b/spec/models/project_auto_devops_spec.rb
index ca13af4d73e..f4bb4b3e7a3 100644
--- a/spec/models/project_auto_devops_spec.rb
+++ b/spec/models/project_auto_devops_spec.rb
@@ -8,7 +8,13 @@ describe ProjectAutoDevops do
it { is_expected.to respond_to(:created_at) }
it { is_expected.to respond_to(:updated_at) }
- describe 'variables' do
+ describe '#has_domain?' do
+ let(:auto_devops) { build_stubbed(:project_auto_devops, project: project, domain: 'domain.com') }
+
+ it { is_expected.to have_domain }
+ end
+
+ describe '#variables' do
let(:auto_devops) { build_stubbed(:project_auto_devops, project: project, domain: domain) }
context 'when domain is defined' do