Form for setting project auto devops settings
This commit is contained in:
		
							parent
							
								
									6ed490401f
								
							
						
					
					
						commit
						770bcf71bb
					
				| 
						 | 
					@ -6,7 +6,7 @@ class Projects::PipelinesSettingsController < Projects::ApplicationController
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def update
 | 
					  def update
 | 
				
			||||||
    if @project.update_attributes(update_params)
 | 
					    if @project.update(update_params)
 | 
				
			||||||
      flash[:notice] = "Pipelines settings for '#{@project.name}' were successfully updated."
 | 
					      flash[:notice] = "Pipelines settings for '#{@project.name}' were successfully updated."
 | 
				
			||||||
      redirect_to project_settings_ci_cd_path(@project)
 | 
					      redirect_to project_settings_ci_cd_path(@project)
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
| 
						 | 
					@ -16,14 +16,12 @@ class Projects::PipelinesSettingsController < Projects::ApplicationController
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def create_params
 | 
					 | 
				
			||||||
    params.require(:pipeline).permit(:ref)
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def update_params
 | 
					  def update_params
 | 
				
			||||||
    params.require(:project).permit(
 | 
					    params.require(:project).permit(
 | 
				
			||||||
      :runners_token, :builds_enabled, :build_allow_git_fetch, :build_timeout_in_minutes, :build_coverage_regex,
 | 
					      :runners_token, :builds_enabled, :build_allow_git_fetch,
 | 
				
			||||||
      :public_builds, :auto_cancel_pending_pipelines, :ci_config_path
 | 
					      :build_timeout_in_minutes, :build_coverage_regex, :public_builds,
 | 
				
			||||||
 | 
					      :auto_cancel_pending_pipelines, :ci_config_path,
 | 
				
			||||||
 | 
					      auto_devops_attributes: [:id, :domain, :enabled]
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,6 +8,7 @@ module Projects
 | 
				
			||||||
        define_secret_variables
 | 
					        define_secret_variables
 | 
				
			||||||
        define_triggers_variables
 | 
					        define_triggers_variables
 | 
				
			||||||
        define_badges_variables
 | 
					        define_badges_variables
 | 
				
			||||||
 | 
					        define_auto_devops_variables
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      private
 | 
					      private
 | 
				
			||||||
| 
						 | 
					@ -42,6 +43,10 @@ module Projects
 | 
				
			||||||
          badge.new(@project, @ref).metadata
 | 
					          badge.new(@project, @ref).metadata
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      def define_auto_devops_variables
 | 
				
			||||||
 | 
					        @auto_devops = @project.auto_devops || ProjectAutoDevops.new
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -191,6 +191,7 @@ class Project < ActiveRecord::Base
 | 
				
			||||||
  accepts_nested_attributes_for :variables, allow_destroy: true
 | 
					  accepts_nested_attributes_for :variables, allow_destroy: true
 | 
				
			||||||
  accepts_nested_attributes_for :project_feature
 | 
					  accepts_nested_attributes_for :project_feature
 | 
				
			||||||
  accepts_nested_attributes_for :import_data
 | 
					  accepts_nested_attributes_for :import_data
 | 
				
			||||||
 | 
					  accepts_nested_attributes_for :auto_devops
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  delegate :name, to: :owner, allow_nil: true, prefix: true
 | 
					  delegate :name, to: :owner, allow_nil: true, prefix: true
 | 
				
			||||||
  delegate :members, to: :team, prefix: true
 | 
					  delegate :members, to: :team, prefix: true
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -217,13 +217,17 @@
 | 
				
			||||||
        .help-block 0 for unlimited
 | 
					        .help-block 0 for unlimited
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  %fieldset
 | 
					  %fieldset
 | 
				
			||||||
    %legend Continuous Integration and Continuous Deployment
 | 
					    %legend Continuous Integration and Deployment
 | 
				
			||||||
    .form-group
 | 
					    .form-group
 | 
				
			||||||
      .col-sm-offset-2.col-sm-10
 | 
					      .col-sm-offset-2.col-sm-10
 | 
				
			||||||
        .checkbox
 | 
					        .checkbox
 | 
				
			||||||
          = f.label :auto_devops_enabled do
 | 
					          = f.label :auto_devops_enabled do
 | 
				
			||||||
            = f.check_box :auto_devops_enabled
 | 
					            = f.check_box :auto_devops_enabled
 | 
				
			||||||
            Allow projects to get automaticly configured to use GitLab CI/CD.
 | 
					            Enabled Auto DevOps (Beta) for projects by default
 | 
				
			||||||
 | 
					        .help-block
 | 
				
			||||||
 | 
					          It will automatically build, test, and deploy applications based on a predefined CI/CD configuration
 | 
				
			||||||
 | 
					          - # Fix this link
 | 
				
			||||||
 | 
					          = link_to icon('question-circle'), help_page_path('user/admin_area/settings/continuous_integration', anchor: 'maximum-artifacts-size')
 | 
				
			||||||
    .form-group
 | 
					    .form-group
 | 
				
			||||||
      .col-sm-offset-2.col-sm-10
 | 
					      .col-sm-offset-2.col-sm-10
 | 
				
			||||||
        .checkbox
 | 
					        .checkbox
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,11 +5,45 @@
 | 
				
			||||||
  .col-lg-8
 | 
					  .col-lg-8
 | 
				
			||||||
    = form_for @project, url: project_pipelines_settings_path(@project) do |f|
 | 
					    = form_for @project, url: project_pipelines_settings_path(@project) do |f|
 | 
				
			||||||
      %fieldset.builds-feature
 | 
					      %fieldset.builds-feature
 | 
				
			||||||
        - unless @repository.gitlab_ci_yml
 | 
					        .form-group
 | 
				
			||||||
          .form-group
 | 
					          %p Pipelines need to have AutoDevOps enabled or have a .gitlab-ci.yml configured before you can begin using Continious Integration and Delivery.
 | 
				
			||||||
            %p Pipelines need to be configured before you can begin using Continuous Integration.
 | 
					          = f.label :auto_devops_enabled, 'Auto DevOps (Beta)', class: 'label-light'
 | 
				
			||||||
            = link_to 'Get started with Pipelines', help_page_path('ci/quick_start/README'), class: 'btn btn-info'
 | 
					          %p
 | 
				
			||||||
            %hr
 | 
					            Auto DevOps will automatically build, test, and deploy your application based on a predefined CI/CD configuration.
 | 
				
			||||||
 | 
					            = link_to 'Learn more about Auto DevOps', help_page_path('ci/quick_start/README') #TODO fix the link
 | 
				
			||||||
 | 
					          = f.fields_for :auto_devops_attributes, @auto_devops do |form|
 | 
				
			||||||
 | 
					            .radio
 | 
				
			||||||
 | 
					              = form.radio_button :enabled, true
 | 
				
			||||||
 | 
					            %strong Enable Auto DevOps
 | 
				
			||||||
 | 
					            %br
 | 
				
			||||||
 | 
					            %span.descr
 | 
				
			||||||
 | 
					              The Auto DevOps pipeline configuration will be used when ther is no .gitlab-ci.yml
 | 
				
			||||||
 | 
					              in the repository.
 | 
				
			||||||
 | 
					            .radio
 | 
				
			||||||
 | 
					              = 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
 | 
				
			||||||
 | 
					            .radio
 | 
				
			||||||
 | 
					              = form.radio_button :enabled, nil
 | 
				
			||||||
 | 
					            %strong
 | 
				
			||||||
 | 
					              Instance default (status: #{current_application_settings.auto_devops_enabled?})
 | 
				
			||||||
 | 
					            %br
 | 
				
			||||||
 | 
					            %span.descr
 | 
				
			||||||
 | 
					              Follow the instance default to either have Auto DevOps enabled or disabled when there is no .gitlab-ci.yml file specified
 | 
				
			||||||
 | 
					            %br
 | 
				
			||||||
 | 
					            %p
 | 
				
			||||||
 | 
					              Define a domain used by Auto DevOps to deploy towards, this is required for deploys to succeed.
 | 
				
			||||||
 | 
					              = link_to 'Learn more about deploying with Auto DevOps', help_page_path('ci/quick_start/README') #TODO fix the link
 | 
				
			||||||
 | 
					            = form.text_field :domain, class: 'form-control', placeholder: 'domain.com'
 | 
				
			||||||
 | 
					          %br
 | 
				
			||||||
 | 
					          %p
 | 
				
			||||||
 | 
					            %strong Project specific pipeline configuration
 | 
				
			||||||
 | 
					            Define a project specific pipeline configuration by creating a .gitlab-ci.yml file.
 | 
				
			||||||
 | 
					          = link_to 'Learn more about pipelines', help_page_path('ci/quick_start/README'), class: 'btn btn-info'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        %hr
 | 
				
			||||||
        .form-group.append-bottom-default
 | 
					        .form-group.append-bottom-default
 | 
				
			||||||
          = f.label :runners_token, "Runner token", class: 'label-light'
 | 
					          = f.label :runners_token, "Runner token", class: 'label-light'
 | 
				
			||||||
          = f.text_field :runners_token, class: "form-control", placeholder: 'xEeFCaDAB89'
 | 
					          = f.text_field :runners_token, class: "form-control", placeholder: 'xEeFCaDAB89'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,7 @@ class CreateProjectAutoDevOps < ActiveRecord::Migration
 | 
				
			||||||
  def up
 | 
					  def up
 | 
				
			||||||
    create_table :project_auto_devops do |t|
 | 
					    create_table :project_auto_devops do |t|
 | 
				
			||||||
      t.belongs_to :project, index: true
 | 
					      t.belongs_to :project, index: true
 | 
				
			||||||
      t.boolean :enabled, default: true
 | 
					      t.boolean :enabled, default: nil, null: true
 | 
				
			||||||
      t.string :domain
 | 
					      t.string :domain
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -250,7 +250,6 @@ ActiveRecord::Schema.define(version: 20170828093725) do
 | 
				
			||||||
  add_index "ci_builds", ["commit_id", "status", "type"], name: "index_ci_builds_on_commit_id_and_status_and_type", using: :btree
 | 
					  add_index "ci_builds", ["commit_id", "status", "type"], name: "index_ci_builds_on_commit_id_and_status_and_type", using: :btree
 | 
				
			||||||
  add_index "ci_builds", ["commit_id", "type", "name", "ref"], name: "index_ci_builds_on_commit_id_and_type_and_name_and_ref", using: :btree
 | 
					  add_index "ci_builds", ["commit_id", "type", "name", "ref"], name: "index_ci_builds_on_commit_id_and_type_and_name_and_ref", using: :btree
 | 
				
			||||||
  add_index "ci_builds", ["commit_id", "type", "ref"], name: "index_ci_builds_on_commit_id_and_type_and_ref", using: :btree
 | 
					  add_index "ci_builds", ["commit_id", "type", "ref"], name: "index_ci_builds_on_commit_id_and_type_and_ref", using: :btree
 | 
				
			||||||
  add_index "ci_builds", ["id"], name: "index_for_ci_builds_retried_migration", where: "(retried IS NULL)", using: :btree, opclasses: {"id)"=>"WHERE"}
 | 
					 | 
				
			||||||
  add_index "ci_builds", ["project_id"], name: "index_ci_builds_on_project_id", using: :btree
 | 
					  add_index "ci_builds", ["project_id"], name: "index_ci_builds_on_project_id", using: :btree
 | 
				
			||||||
  add_index "ci_builds", ["runner_id"], name: "index_ci_builds_on_runner_id", using: :btree
 | 
					  add_index "ci_builds", ["runner_id"], name: "index_ci_builds_on_runner_id", using: :btree
 | 
				
			||||||
  add_index "ci_builds", ["stage_id"], name: "index_ci_builds_on_stage_id", using: :btree
 | 
					  add_index "ci_builds", ["stage_id"], name: "index_ci_builds_on_stage_id", using: :btree
 | 
				
			||||||
| 
						 | 
					@ -1122,8 +1121,8 @@ ActiveRecord::Schema.define(version: 20170828093725) do
 | 
				
			||||||
    t.integer "project_id"
 | 
					    t.integer "project_id"
 | 
				
			||||||
    t.boolean "enabled", default: true
 | 
					    t.boolean "enabled", default: true
 | 
				
			||||||
    t.string "domain"
 | 
					    t.string "domain"
 | 
				
			||||||
    t.datetime "created_at", null: false
 | 
					    t.datetime_with_timezone "created_at", null: false
 | 
				
			||||||
    t.datetime "updated_at", null: false
 | 
					    t.datetime_with_timezone "updated_at", null: false
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  add_index "project_auto_devops", ["project_id"], name: "index_project_auto_devops_on_project_id", using: :btree
 | 
					  add_index "project_auto_devops", ["project_id"], name: "index_project_auto_devops_on_project_id", using: :btree
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,6 +50,7 @@ project_tree:
 | 
				
			||||||
        - :push_event_payload
 | 
					        - :push_event_payload
 | 
				
			||||||
    - :stages
 | 
					    - :stages
 | 
				
			||||||
    - :statuses
 | 
					    - :statuses
 | 
				
			||||||
 | 
					  - :project_auto_devops
 | 
				
			||||||
  - :triggers
 | 
					  - :triggers
 | 
				
			||||||
  - :pipeline_schedules
 | 
					  - :pipeline_schedules
 | 
				
			||||||
  - :services
 | 
					  - :services
 | 
				
			||||||
| 
						 | 
					@ -141,4 +142,4 @@ methods:
 | 
				
			||||||
  events:
 | 
					  events:
 | 
				
			||||||
    - :action
 | 
					    - :action
 | 
				
			||||||
  push_event_payload:
 | 
					  push_event_payload:
 | 
				
			||||||
    - :action
 | 
					    - :action
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -256,6 +256,7 @@ project:
 | 
				
			||||||
- environments
 | 
					- environments
 | 
				
			||||||
- deployments
 | 
					- deployments
 | 
				
			||||||
- project_feature
 | 
					- project_feature
 | 
				
			||||||
 | 
					- auto_devops
 | 
				
			||||||
- pages_domains
 | 
					- pages_domains
 | 
				
			||||||
- authorized_users
 | 
					- authorized_users
 | 
				
			||||||
- project_authorizations
 | 
					- project_authorizations
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue